{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# New York City Taxi Fare Prediction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook was inspired from the \"Another Machine Learning Walk-Through and a Challenge\" by Will Koehrsen.\n",
    "\n",
    "- https://towardsdatascience.com/another-machine-learning-walk-through-and-a-challenge-8fae1e187a64"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
    "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/kaggle/input/new-york-city-taxi-fare-prediction/GCP-Coupons-Instructions.rtf\n",
      "/kaggle/input/new-york-city-taxi-fare-prediction/train.csv\n",
      "/kaggle/input/new-york-city-taxi-fare-prediction/sample_submission.csv\n",
      "/kaggle/input/new-york-city-taxi-fare-prediction/test.csv\n"
     ]
    }
   ],
   "source": [
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "import os\n",
    "for dirname, _, filenames in os.walk('/kaggle/input'):\n",
    "    for filename in filenames:\n",
    "        print(os.path.join(dirname, filename))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data Exploration and Data Cleaning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0",
    "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fare_amount</th>\n",
       "      <th>pickup_datetime</th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4.5</td>\n",
       "      <td>2009-06-15 17:26:21</td>\n",
       "      <td>-73.844311</td>\n",
       "      <td>40.721319</td>\n",
       "      <td>-73.841610</td>\n",
       "      <td>40.712278</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>16.9</td>\n",
       "      <td>2010-01-05 16:52:16</td>\n",
       "      <td>-74.016048</td>\n",
       "      <td>40.711303</td>\n",
       "      <td>-73.979268</td>\n",
       "      <td>40.782004</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5.7</td>\n",
       "      <td>2011-08-18 00:35:00</td>\n",
       "      <td>-73.982738</td>\n",
       "      <td>40.761270</td>\n",
       "      <td>-73.991242</td>\n",
       "      <td>40.750562</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>7.7</td>\n",
       "      <td>2012-04-21 04:30:42</td>\n",
       "      <td>-73.987130</td>\n",
       "      <td>40.733143</td>\n",
       "      <td>-73.991567</td>\n",
       "      <td>40.758092</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.3</td>\n",
       "      <td>2010-03-09 07:51:00</td>\n",
       "      <td>-73.968095</td>\n",
       "      <td>40.768008</td>\n",
       "      <td>-73.956655</td>\n",
       "      <td>40.783762</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   fare_amount     pickup_datetime  pickup_longitude  pickup_latitude  \\\n",
       "0          4.5 2009-06-15 17:26:21        -73.844311        40.721319   \n",
       "1         16.9 2010-01-05 16:52:16        -74.016048        40.711303   \n",
       "2          5.7 2011-08-18 00:35:00        -73.982738        40.761270   \n",
       "3          7.7 2012-04-21 04:30:42        -73.987130        40.733143   \n",
       "4          5.3 2010-03-09 07:51:00        -73.968095        40.768008   \n",
       "\n",
       "   dropoff_longitude  dropoff_latitude  passenger_count  \n",
       "0         -73.841610         40.712278                1  \n",
       "1         -73.979268         40.782004                1  \n",
       "2         -73.991242         40.750562                2  \n",
       "3         -73.991567         40.758092                1  \n",
       "4         -73.956655         40.783762                1  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('/kaggle/input/new-york-city-taxi-fare-prediction/train.csv', nrows = 500_000, \n",
    "                   parse_dates = ['pickup_datetime']).drop(columns = 'key')\n",
    "\n",
    "# Remove na\n",
    "df = df.dropna()\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fare_amount</th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>499995.000000</td>\n",
       "      <td>499995.000000</td>\n",
       "      <td>499995.000000</td>\n",
       "      <td>499995.000000</td>\n",
       "      <td>499995.000000</td>\n",
       "      <td>499995.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>11.358182</td>\n",
       "      <td>-72.520091</td>\n",
       "      <td>39.920350</td>\n",
       "      <td>-72.522435</td>\n",
       "      <td>39.916526</td>\n",
       "      <td>1.683445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>9.916069</td>\n",
       "      <td>11.856446</td>\n",
       "      <td>8.073318</td>\n",
       "      <td>11.797362</td>\n",
       "      <td>7.391002</td>\n",
       "      <td>1.307391</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-44.900000</td>\n",
       "      <td>-2986.242495</td>\n",
       "      <td>-3116.285383</td>\n",
       "      <td>-3383.296608</td>\n",
       "      <td>-2559.748913</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>-73.992047</td>\n",
       "      <td>40.734916</td>\n",
       "      <td>-73.991382</td>\n",
       "      <td>40.734057</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>8.500000</td>\n",
       "      <td>-73.981785</td>\n",
       "      <td>40.752670</td>\n",
       "      <td>-73.980126</td>\n",
       "      <td>40.753152</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>12.500000</td>\n",
       "      <td>-73.967117</td>\n",
       "      <td>40.767076</td>\n",
       "      <td>-73.963572</td>\n",
       "      <td>40.768135</td>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>500.000000</td>\n",
       "      <td>2140.601160</td>\n",
       "      <td>1703.092772</td>\n",
       "      <td>40.851027</td>\n",
       "      <td>404.616667</td>\n",
       "      <td>6.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         fare_amount  pickup_longitude  pickup_latitude  dropoff_longitude  \\\n",
       "count  499995.000000     499995.000000    499995.000000      499995.000000   \n",
       "mean       11.358182        -72.520091        39.920350         -72.522435   \n",
       "std         9.916069         11.856446         8.073318          11.797362   \n",
       "min       -44.900000      -2986.242495     -3116.285383       -3383.296608   \n",
       "25%         6.000000        -73.992047        40.734916         -73.991382   \n",
       "50%         8.500000        -73.981785        40.752670         -73.980126   \n",
       "75%        12.500000        -73.967117        40.767076         -73.963572   \n",
       "max       500.000000       2140.601160      1703.092772          40.851027   \n",
       "\n",
       "       dropoff_latitude  passenger_count  \n",
       "count     499995.000000    499995.000000  \n",
       "mean          39.916526         1.683445  \n",
       "std            7.391002         1.307391  \n",
       "min        -2559.748913         0.000000  \n",
       "25%           40.734057         1.000000  \n",
       "50%           40.753152         1.000000  \n",
       "75%           40.768135         2.000000  \n",
       "max          404.616667         6.000000  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Fare Distribution')"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (10,8))\n",
    "plt.hist(df['fare_amount'])\n",
    "plt.title('Fare Distribution')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of negative fares: 21\n",
      "Number of fares equal to 0: 14\n"
     ]
    }
   ],
   "source": [
    "print(f\"Number of negative fares: {len(df[df['fare_amount'] < 0])}\")\n",
    "print(f\"Number of fares equal to 0: {len(df[df['fare_amount'] == 0])}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df[df['fare_amount'].between(left = 2.5, right= df['fare_amount'].max())]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Empirical Comulative Distribution Function"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Empirical Comulative Distribution Function (ECDF) can be used to show distributions of a single variable. ECDF shows the variable on the X axis and the Percentile on the Y axis."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def ecdf(x):\n",
    "    x = np.sort(x)\n",
    "    n = len(x)\n",
    "    # Going from 1/n to 1\n",
    "    y = np.arange(1, n + 1, 1) / n\n",
    "    return x, y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfUAAAGDCAYAAAAyM4nNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XuYXXV97/H3dy7JJCEXSIJALgQlXnIUFFO0RU9RsQXbgm31CK2n2mOlp09ttfq0h14Otba2tbW12uKptFrtRdDaajmWFgW1eloRQkHuSOQaAiFACLnPzN7f88dek2yGueyZzMqatef9ep79zF6XWfs7P5h85vdbl19kJpIkqf56qi5AkiTNDENdkqQuYahLktQlDHVJkrqEoS5JUpcw1CVJ6hKGuiRJXcJQl2ZQRNwXEfsiYnfb64Qj+PlnRURGxLuP1GdOVURsiYgzJ9h+VkQ0R7Xh7oj4nrZ9zomIb0TEroh4NCK+FhE/VGz7mYhotH3fvRHxiYhY3/b9Jxft1H78G0r9waUjwFCXZt6PZOZRba+tUz1ARPRO87PfAjxRfK2zB0a14VGZeT1ARJwPfAb4BLAKOB74LeDctu//RmYeBSwFzgKGgE0R8YL2Dxl1/JcegZ9LKpWhLh0BEdETEZ+LiEci4smiZ/mCtu1/GxGXRMS/RsQe4JURMRARfxwRD0bEtoj4aEQMTPAZRwE/BvwcsCEiXty2baRn+taip/xERLw9Il4WEbcUNX14VL0XR8T9RU/4kxGxpNh2VkTcN+qzD/a+I+J3IuKy4mfaFRG3RsRpxbbLgBOAfyl6x1MaUYiIHuCPgN/MzL/KzKcys5GZX83Mnx29f7Htu8W2bwK/OZXPk+rGUJeOnC8C64HjgFuBvxm1/Sdo9TgX0wqgDwInAacU37cO+PUJjv9GYAfwOeBq4KfG2Gcj8BzgzcBHgIuAVwMvBN4cEWcU+/1Msc+Zxf5HAx8efbAJvJ7Wz7cM+Jfis8jMC4CtwDlF7/iPp3BMgA20/ij43BS/D+AfgVdO4/uk2jDUpZn3haLn+2REfAEgM5uZ+cnM3JWZ+4H3Ai+NiEVt3/f5zPxmZjZpDRf/DPCuzNyRmU8BvwecP8HnvgW4vPj+TwM/GRF9o/b57cw8kJlXAoPA32bm9szcAvw/4CXFfj8JfDAz783MXcCvAT9R9JQ78W+ZeVVmNmiF+4sn+4ZR1ra14chrPrC82P7wFI8HrT8mjmlfMer475rGMaVZZfQvvKTD9/rMvLp9RXGO/PeANwArgGaxaQWwp3j/YNu3HAfMB74dEQcPM94HRsQ64L8Cv1Ss+jzw58DZtEYIAMjMbW3ftg8YvXxU8f4E4P62bfcD84CV49UwyiNt7/cCi8bbcRwPZOa60Ssj4vHi7fE8vb06sYrW9QYHZeayKR5DmtXsqUtHxk8Br6M11L0UOLlY3x7U7VMmbqPVk35eZi4rXkszc+kExw9a56ofATbTCuGxhuA7sRU4sW15bVHPdlp/hCwc2VCMBiync4czNeTtRW0/Po3vfT3wjcP4bGnWM9SlI2MxcAB4nFYgvn+inYth678E/iQiVkbL6oj4gXG+5aeAi2kNc4+83gScGxFHT6Pey4B3R8S6iFhc1HtZMbR/J7A4In4wIvppXXzWP4VjbwOePY2aKD7/PcB7I+ItEbGkuKjvlRHx56P3j4jeiHh2RHwUeAXw29P5XKkuDHXpyPgrWj3MrcBtwH908D3voTXsfR2wE/gSrQvmniYiXkFruPySzHxk5EVrCP4+WuE+VX9B67axbwD3ALuAdwJk5g7gF4BPAQ/RGtJ+ZOzDjOl3gd+a5Dz22jHuU3998fmX07qo8O202vMR4H3AP7V9/ysjYjfwFPAVWn9IbczM26ZQp1Q7kXk4I2GSJGm2sKcuSVKXMNQlSeoShrokSV3CUJckqUsY6pIkdYnaPVFuxYoVuW7duqrLkCTpiLjhhhsey8yOnuZYu1Bft24dmzZtqroMSZKOiIi4f/K9Whx+lySpSxjqkiR1CUNdkqQuYahLktQlDHVJkrqEoS5JUpcw1CVJ6hKGuiRJXcJQlySpS5QW6hHxiYh4NCJuHWd7RMRHImJzRNwcEaeVVYskSXNBmT31TwJnT7D9HGB98boQ+D8l1iJJUtcr7dnvmfn1iFg3wS7nAX+dmQlcGxHLIuL4zHy4rJr0TJlJJjQzaRZfDy231mXbtubo/Zud7T9z9Xa4H53t2MnxOi0/Oyyu8+N1uGMlP2un+1XTJh399+/4WB3uN4f+39TE+nqCV67vaP6Vmf/sSj61ZRXwYNvylmLdM0I9Ii6k1Ztn7dq1R6S42Wr/UIN/vfURHt8zyK79Q+wdbLB3cJi9BxocGG6yf6jB/uEGB4aa7BtqMDjcZKjRZKiRDDdbX4caTYYbyWCjSaPpr7EkzaQlA33c/N4frOSzqwz1GGPdmAmTmZcClwJs3LhxTqfQH3/5O1z69XsOLg/097BwXh8L5/Uy0N/L/L6eg1+XLOhnfl8Pfb099PcG/T099PcFfT3Fcm8P/b099ETQE9DTE0RwaDmCaHvfExTL7duLbT1j7w8jXycX0dmOHR6ODg/X0X7R6afO7G6VtEmnP2vH7dvZblNou5mrb8b/O8z4f/+ZO9qM//fSuHo7/UevBFWG+hZgTdvyamBrRbXMWnc8/BS3PrSTx3YP8sSeA/zFN+5lxVHzuObdZ3LUQF+l//NIkmaXKkP9CuAdEXE58DJgp+fTD7lt607+7lsP8OlvPXBw3UB/DycuX8gv/+DzWLqwv8LqJEmzUWmhHhGXAWcCKyJiC/CbQD9AZv45cCXwOmAzsBf46bJqqaPf+eIdfPOex3nRqqW87RUn8doNz2LR/Cr/BpMkzXZlXv1+wSTbE/j5sj6/bg4MN7jpgSe5a9suvrNtF9+853HetHENH3jDKVWXJkmqCbt+s8BQo8kvXnYjV922DYDF8/t4xckr+MWz1ldcmSSpTgz1imQm37j7MT5/40Ncffs2dh0Y5sTlC7n8wpdz3JKBjq+2lSRphKF+hDWayT/+5xY++rXvcu9je1i6oJ8ffOFxvPr5x/LK9StYPOAFcJKk6THUj6Dbtz7Fr33+Fm568Emef9xifv/HXsSPnraK+X29VZcmSeoChvoRcsW3t3LRP9xMTwS//2Mv4o0b13iPuSRpRhnqR8AHr7qLP/vqZjYcv4SPv3Ujxy9dUHVJkqQuZKiX7I++1Ar0c089gQ++8VTm9TmFvSSpHIZ6iS6/7gH+9Cub+eFTjudDb3qxw+2SpFLZbSzJ17+znV//wq1877OX80f/7VQDXZJUOkO9BI/u2s+7PnMTxyyax5/9xEu8ul2SdEQY6jOs2Uze9slN7DkwzF+99XtYftT8qkuSJM0RhvoMu+Srm7nloZ38ytnP54WrllZdjiRpDjHUZ9CtD+3kw9fczfc9Zzn/44x1VZcjSZpjDPUZ0mgmv3DZjQw3kz94wyk+u12SdMQZ6jPkr795H/c+tod3vmY9q49eWHU5kqQ5yFCfATv2DPL+f76DF61ayjtf43SpkqRqGOoz4Ff/8RaGm8lF5zyfHu9HlyRVxFA/TFuf3MfVd2zj1NVLOePkFVWXI0mawwz1w/T+K+9guJl88I2nVl2KJGmOM9QPw4NP7OWfb36YV65fwfpnLa66HEnSHGeoH4bLr38AgJ/7/udUXIkkSYb6tDWbyWeu38Jpa5fxvc9ZXnU5kiQZ6tP1xVse5rHdB/jxl672QTOSpFnBUJ+mq2/fBsCPnHpCxZVIktRiqE/D4HCTK769lRccv4QlA/1VlyNJEmCoT8vdj+4C4IdedFzFlUiSdIihPg1fueNRAH7stNUVVyJJ0iGG+jT88y0Pc8LSAU5YtqDqUiRJOshQn6LM5M5HdvHK9SurLkWSpKcx1KfounufAOCUNUsrrkSSpKcz1Kfomjtb59NfvGZZxZVIkvR0hvoU3fvYHgBOPvaoiiuRJOnpDPUpuvexPbzspGOY39dbdSmSJD2NoT4Fu/YPsfnR3Zx24tFVlyJJ0jMY6lPwnW2th848/zinWZUkzT6G+hT8yy2PAPCSNfbUJUmzj6E+BbsPDLN0QT9rly+suhRJkp7BUJ+Cb9z9GIsH+qouQ5KkMRnqU7BvqMGp3p8uSZqlDPUOPbl3kCf2DHLckoGqS5EkaUyGeoeuv28HAOtWLKq4EkmSxmaod2j/UAOAl590TMWVSJI0NkO9Q/c/3no87JIF/RVXIknS2Az1Dt35yC6WLeznWZ5TlyTNUoZ6hx7ZuZ9nez5dkjSLGeodemz3AY5ZNL/qMiRJGpeh3oFtT+3nvsf3svYYnyQnSZq9DPUOPLxzPwCnrF5acSWSJI3PUO/A4HATgBVHOfwuSZq9DPUO3PrQTgDm9dlckqTZq9SUioizI+KuiNgcEReNsX1tRHw1Im6MiJsj4nVl1jNdj+46AMB/OWFJxZVIkjS+0kI9InqBS4BzgA3ABRGxYdRuvwF8NjNfApwPfLSseg7HUKPJUfP7WDTfGdokSbNXmT3104HNmXlPZg4ClwPnjdongZHu71Jga4n1TNu9j+2hvzeqLkOSpAmV2fVcBTzYtrwFeNmofd4LfCkifgFYBJxVYj3TdsP9OzyfLkma9cpMqrG6tjlq+QLgk5m5Gngd8DcR8YyaIuLCiNgUEZu2b99eQqkTG240+ZFTTjjinytJ0lSUGepbgDVty6t55vD624DPAmTmN4EBYMXoA2XmpZm5MTM3rly5sqRyxzfUSOb321OXJM1uZSbV9cD6iDgpIubRuhDuilH7PAC8BiAiXkAr1I98V3wCg8NNBhtN+ns8py5Jmt1KC/XMHAbeAVwF3EHrKvfbIuJ9EXFusdt7gLdHxLeBy4C3ZuboIfpKfXf7bgDWLncyF0nS7FbqPVqZeSVw5ah1F7e9vx04o8waDtcDT+wF4ISlTrkqSZrdPFE8iSf3DgKwxslcJEmznKE+if1Dree+z/eWNknSLGdSTeKx3a1HxB69aF7FlUiSNDFDfRK3PrSTRfN66e+1qSRJs5tJNYktO/bxrCVeJCdJmv0M9UkMN5P/smpp1WVIkjQpQ30Sw80mfT54RpJUA4b6JPYPGeqSpHow1CewfdcBtu86QK+hLkmqAUN9Ajv3tR48c+qaZRVXIknS5Az1CQw3W4+hX7agv+JKJEmanKE+geFGK9Qdfpck1YGhPoGRnnpfr6EuSZr9DPUJfOWObQDM7+utuBJJkiZnqE/gqf3DAHzPumMqrkSSpMkZ6hNoNJNjFs1jnjO0SZJqwLSawHAzvUhOklQbhvoEGj4iVpJUI4b6BPYMNuypS5Jqw1CfwEM79rF80byqy5AkqSOG+gT2Dg5z/NIFVZchSVJHDPVxZCYP79zPgnneoy5JqgdDfRz7hhrs2j/MCcsGqi5FkqSOGOqTWDLgZC6SpHow1MeRWXUFkiRNjaE+jif2tOZSP2qgr+JKJEnqjKE+jv1DDcDhd0lSfRjq43h4534An/suSaoNE2scdz2yC4BVy7xPXZJUD4b6OIaaTQBOPvaoiiuRJKkzhvo4ms3W5e894bPfJUn1YKiPo9HqqDuhiySpNgz1cTRypKdecSGSJHXIUB9Hs5n0BITD75KkmjDUx3Hv43scepck1YqhPo6HduxjsQ+ekSTViKE+jkYzOXX10qrLkCSpY4b6OJqZDr9LkmrFUB9Ho5leJCdJqhVDfRzNTHoNdUlSjRjq42g0HX6XJNWLoT6O4WbSY6hLkmrEUB/Dtqf2c//je32anCSpVgz1MWzfdQCAjSceXXElkiR1zlAfQ7N47vsJzqUuSaoRQ30MDaddlSTVkKE+hpGeuhfKSZLqxFAfQ9FR90I5SVKtGOpjGBl+9+EzkqQ6MdTH4PC7JKmODPUxPL57EMAnykmSaqXUUI+IsyPirojYHBEXjbPPf4uI2yPitoj4dJn1dGrbU/sBOGnFooorkSSpc31lHTgieoFLgNcCW4DrI+KKzLy9bZ/1wK8CZ2Tmjog4tqx6pmK4OKe+cF5vxZVIktS5MnvqpwObM/OezBwELgfOG7XP24FLMnMHQGY+WmI9HRtuNAHo6/HshCSpPspMrVXAg23LW4p17Z4LPDci/j0iro2Is8c6UERcGBGbImLT9u3bSyr3kN0HGgD093pOXZJUH2WG+liJmKOW+4D1wJnABcBfRsSyZ3xT5qWZuTEzN65cuXLGCx1ty469LJrXS3hLmySpRsoM9S3Amrbl1cDWMfb5p8wcysx7gbtohXylhhvJ6qMXVl2GJElTUmaoXw+sj4iTImIecD5wxah9vgC8CiAiVtAajr+nxJokSepapYV6Zg4D7wCuAu4APpuZt0XE+yLi3GK3q4DHI+J24KvAL2fm42XVJElSNyvtljaAzLwSuHLUuovb3ifw7uI1aww3m1WXIEnSlHnP1hie3DvE0gX9VZchSdKUdBzqEfGKiPjp4v3KiDipvLKqNdxMBnzwjCSpZjoK9Yj4TeB/0Xr6G0A/8LdlFVW14WaTPp/7LkmqmU576j8KnAvsAcjMrcDisoqq2nAjDXVJUu10GuqDxUVtCRARXTvTyeBwkzsf2UWfT5OTJNVMp6H+2Yj4GLAsIt4OXA38RXllVWfnviEA1vjwGUlSzXR0S1tmfjAiXgs8BTwPuDgzv1xqZRVpDUjA2uWGuiSpXjq+T70I8a4M8nbFrKv0+Nx3SVLNTBjqEbGLZ07CAq3JWjIzl5RSVYWaRU/d6+QkSXUzYahnZtde4T6ekVB3hjZJUt1M1lNfkplPRcQxY23PzCfKKas66fC7JKmmJjun/mngh4EbaA3DtyddAs8uqa7KOPwuSaqryYbff7j42rWPhB3NC+UkSXXV6WNir+lkXTc4dE694kIkSZqiyc6pDwALgRURcTSHht+XACeUXFsl9h5oAPbUJUn1M9k59Z8F3kUrwG/gUKg/BVxSYl2VuenBHQAscepVSVLNTHZO/cPAhyPiFzLzT49QTZUaOaf+whO67hZ8SVKX6/QxsX8aEd8HrGv/nsz865LqqkwevPrd4XdJUr10FOoR8TfAc4CbgEaxOoGuC3Wvfpck1VWnz37fCGzIkW5sFzt49Xun89dJkjRLdBpdtwLHlVnIbOET5SRJddVpT30FcHtEXAccGFmZmeeWUlWFDvbUK65DkqSp6jTU31tmEbPJyPkFe+qSpLrp9Or3f4uIE4H1mXl1RCwEesstrRo+UU6SVFedPib27cDngI8Vq1YBXyirqCp5Tl2SVFedXij388AZtJ4kR2beDRxbVlFVGm44S5skqZ46DfUDmTk4shARfRw6/dxVvnXv48zv67GnLkmqnU5D/d8i4teABRHxWuDvgf9bXlnVeXz3IKefdAw9dtUlSTXTaahfBGwHbqE1ycuVwG+UVVSVmpksHuj0pgBJkmaPTtNrAfCJzPwLgIjoLdbtLauwqjQzCe9SlyTVUKc99WtohfiIBcDVM19O9RJvZ5Mk1VOnoT6QmbtHFor3C8spqVqZ3s4mSaqnTkN9T0ScNrIQES8F9pVTUrWamd7OJkmqpU7Pqb8T+PuI2FosHw+8qZySqtXMJOypS5JqaNJQj4geYB7wfOB5tOY6uTMzh0qurRKZnlOXJNXTpKGemc2I+KPM/F5aU7B2Nc+pS5LqqtNz6l+KiB+POTAu7Tl1SVJddXpO/d3AIqAREftoDcFnZi4prbKKeJ+6JKmuOp16dXHZhcwGw40mj+8epL/PUJck1U+nU69GRLw5Iv53sbwmIk4vt7Qjb/9wk+FmcvzSBZPvLEnSLNPpOfWPAt8L/ESxvBu4pJSKKtQopl0d6O+tuBJJkqau03PqL8vM0yLiRoDM3BER80qsqxLDzSYAfV4pJ0mqoU576kPFJC4JEBErgWZpVVWkka2eeq+hLkmqoU5D/SPA54FjI+L9wP8Dfre0qirSaLZC3Z66JKmOOr36/e8i4gbgNbRuZ3t9Zt5RamUVGG7YU5ck1deEoR4RA8D/BE4GbgE+lpnDR6KwKuzc13ry7by+TgcwJEmaPSZLr08BG2kF+jnAB0uvqEJ7BxsAHLOo664BlCTNAZMNv2/IzBcBRMTHgevKL6k6h86p21OXJNXPZOl1cCa2bh52H3Ew1Hs9py5Jqp/JeuqnRsRTxfsAFhTLXfns95H71J2lTZJURxP21DOzNzOXFK/FmdnX9n7SQI+IsyPirojYHBEXTbDfGyIiI2LjdH6ImdJMb2mTJNVXaSePi4fVXELrArsNwAURsWGM/RYDvwh8q6xaOrVjT+tsw/x+z6lLkuqnzPQ6Hdicmfdk5iBwOXDeGPv9NvAHwP4Sa+nI/uHW1e9HL/Tqd0lS/ZQZ6quAB9uWtxTrDoqIlwBrMvOLEx0oIi6MiE0RsWn79u0zX2mhuE7Oc+qSpFoqM9THSsY8uDGiB/gQ8J7JDpSZl2bmxszcuHLlyhks8emaRap7Sl2SVEdlhvoWYE3b8mpga9vyYuCFwNci4j7g5cAVVV4sN3JLm4+JlSTVUZmhfj2wPiJOKqZpPR+4YmRjZu7MzBWZuS4z1wHXAudm5qYSa5rQyNXvPYa6JKmGSgv14mE17wCuAu4APpuZt0XE+yLi3LI+93Ac7Kl7Tl2SVEMdzdI2XZl5JXDlqHUXj7PvmWXW0om7HtkFOPwuSaonb8hu89ieQRbN62W+s7RJkmrI9GqTmTz3uMWEw++SpBoy1Ntkeo+6JKm+DPU2zcwxb66XJKkODPU29tQlSXVmqLdpZmKmS5LqylBvk4mhLkmqLUO9TZIOv0uSastQb9O0py5JqjFDvU2mPXVJUn0Z6m2aOfk+kiTNVoZ6m8Rb2iRJ9WWot0lvaZMk1ZihXshM7nxkl0+UkyTVlqFe2DfUYHC4ybGLB6ouRZKkaTHUCyMXyT3n2EXVFiJJ0jQZ6oXMVqp7oZwkqa4M9YK3s0mS6s5QH1GEuj11SVJdGeqFZjH8bqZLkurKUC+MjL7bU5ck1ZWhXrCnLkmqO0O9UGQ6YapLkmrKUC+M3NJmpEuS6spQL3hOXZJUd4Z6wXPqkqS6M9QLefA+9WrrkCRpugz1wuBwE4DwrLokqaYM9cLX794OwAnLFlRciSRJ02OoF/YNNgB4ydplFVciSdL0GOoFr36XJNWdoV7w6ndJUt0Z6oVDT5Srtg5JkqbLUC8ceqKcqS5JqidDvWBPXZJUd4Z6wQvlJEl1Z6gXmk7oIkmqOUO94PC7JKnuDPXCyPC786lLkurKUC9kpr10SVKtGeqFTC+SkyTVm6FeaGZ6kZwkqdYM9cLuA8MOv0uSas1QLzy8cz/HLJpXdRmSJE2boV4YbjQ5dvFA1WVIkjRthnqhmdDT4/i7JKm+DPVCMxMzXZJUZ4Z6oZlJr1fKSZJqzFAvNJrpfeqSpFoz1Autc+pVVyFJ0vSVGmMRcXZE3BURmyPiojG2vzsibo+ImyPimog4scx6JtK0py5JqrnSQj0ieoFLgHOADcAFEbFh1G43Ahsz8xTgc8AflFXPZLbvPkCvV8pJkmqszJ766cDmzLwnMweBy4Hz2nfIzK9m5t5i8VpgdYn1TOiJPYMcv9T71CVJ9VVmqK8CHmxb3lKsG8/bgH8psZ5JLZrfV+XHS5J0WMpMsbHGsnOMdUTEm4GNwPePs/1C4EKAtWvXzlR9kiR1lTJ76luANW3Lq4Gto3eKiLOAXwfOzcwDYx0oMy/NzI2ZuXHlypWlFCtJUt2VGerXA+sj4qSImAecD1zRvkNEvAT4GK1Af7TEWiRJ6nqlhXpmDgPvAK4C7gA+m5m3RcT7IuLcYrc/BI4C/j4iboqIK8Y5XKkykwNDTcIZ1SVJNVbqlWGZeSVw5ah1F7e9P6vMz+/UYKPJYKPJsoX9VZciSdK0+Qw1oNlsfe3vtTkkSfVlitGazAXATJck1ZkxxqFQ9zGxkqQ6M9Q5NPwehrokqcYMddqG3810SVKNGepAY2T43QldJEk1ZqjjOXVJUncw1IE7Ht4FgJkuSaozQx14cu8gAC9atbTiSiRJmj5DHShG31k84BPlJEn1Zahz6Jy6o++SpDoz1DnUU/dCOUlSnRnqtPXUzXRJUo0Z6kDRUTfUJUm1ZqjTmk8dfEysJKneDHXaz6lXW4ckSYfDUAeaRaiH179LkmrMUAeSkcfEVlyIJEmHwVDnUE/djrokqc4MdTh4Ut371CVJdWao035OXZKk+jLUgU337wCgr8fmkCTVlykGDA43WLqgn6ULndBFklRfhjqt4ffjlw5UXYYkSYfFUKd1nZwXyUmS6s5Qp/WYWE+nS5LqziijNUubT5OTJNWdoU5rljafJidJqjtDndaFcs7QJkmqO0Od4py6mS5JqjlDneKcuj11SVLNGeqM3NJWdRWSJB0eQx176pKk7jDnQz0zufWhp7yhTZJUe3M+1J/cO8TuA8MsHvC575Kkepvzod4o5lL//ueuqLgSSZIOz5wP9WYxmbrn1CVJdWeotzKdXi9/lyTV3JwP9ZHhdzNdklR3cz7UR4bfnXpVklR3hnoa6pKk7mCoe05dktQl5nyoDzeaANhRlyTV3ZwP9Xsf2wPAkgU+fEaSVG9zPtT3DTUAWHP0woorkSTp8Mz5UB9utE6q9/c6/i5JqjdDvdk6p97XO+ebQpJUc3M+yR7asQ+Agb453xSSpJqb80m2Y+8Q83p7WH7U/KpLkSTpsBjqewdZudhAlyTV35wP9Sf3DrFsobezSZLqr9RQj4izI+KuiNgcEReNsX1+RHym2P6tiFhXZj2jZSY3PrCDgf7eI/mxkiSVorRQj4he4BLgHGADcEFEbBi129uAHZl5MvAh4ANl1TOWzY/uZs9ggzOfu/JIfqwkSaUos6d+OrA5M+/JzEHgcuC8UfucB3yqeP854DURR+6BrbdtfQqAVz3/2CP1kZIklabMUF8FPNi2vKVYN+Y+mTkM7ASWjz5QRFwYEZsiYtP27dtnrMClC/s54+TlrD56wYwdU5KkqvSVeOyxetw5jX3IzEuBSwE2btz4jO3T9arnHcurnmcvXZLUHcrsqW8B1rQtrwa2jrdPRPQBS4EnSqxJkqSU82F3AAAHi0lEQVSuVWaoXw+sj4iTImIecD5wxah9rgDeUrx/A/CVzJyxnrgkSXNJacPvmTkcEe8ArgJ6gU9k5m0R8T5gU2ZeAXwc+JuI2Eyrh35+WfVIktTtyjynTmZeCVw5at3Fbe/3A28sswZJkuaKOf9EOUmSuoWhLklSlzDUJUnqEoa6JEldwlCXJKlLGOqSJHUJQ12SpC5hqEuS1CUMdUmSukTU7VHrEbEduH8GDrUCeGwGjjPX2Y6HzzacGbbjzLAdD99Mt+GJmbmykx1rF+ozJSI2ZebGquuoO9vx8NmGM8N2nBm24+Grsg0dfpckqUsY6pIkdYm5HOqXVl1Al7AdD59tODNsx5lhOx6+ytpwzp5TlySp28zlnrokSV1lToZ6RJwdEXdFxOaIuKjqemaziPhERDwaEbe2rTsmIr4cEXcXX48u1kdEfKRo15sj4rTqKp89ImJNRHw1Iu6IiNsi4p3FetuxQxExEBHXRcS3izb8rWL9SRHxraINPxMR84r184vlzcX2dVXWP9tERG9E3BgRXyyWbccpioj7IuKWiLgpIjYV6yr/nZ5zoR4RvcAlwDnABuCCiNhQbVWz2ieBs0etuwi4JjPXA9cUy9Bq0/XF60Lg/xyhGme7YeA9mfkC4OXAzxf/z9mOnTsAvDozTwVeDJwdES8HPgB8qGjDHcDbiv3fBuzIzJOBDxX76ZB3Ane0LduO0/OqzHxx2+1rlf9Oz7lQB04HNmfmPZk5CFwOnFdxTbNWZn4deGLU6vOATxXvPwW8vm39X2fLtcCyiDj+yFQ6e2Xmw5n5n8X7XbT+MV2F7dixoi12F4v9xSuBVwOfK9aPbsORtv0c8JqIiCNU7qwWEauBHwL+slgObMeZUvnv9FwM9VXAg23LW4p16tyzMvNhaAUWcGyx3radRDF8+RLgW9iOU1IMGd8EPAp8Gfgu8GRmDhe7tLfTwTYstu8Elh/ZimetPwF+BWgWy8uxHacjgS9FxA0RcWGxrvLf6b4yDjrLjfVXprcAzAzbdgIRcRTwD8C7MvOpCTo8tuMYMrMBvDgilgGfB14w1m7FV9twDBHxw8CjmXlDRJw5snqMXW3HyZ2RmVsj4ljgyxFx5wT7HrF2nIs99S3Amrbl1cDWimqpq20jQ0fF10eL9bbtOCKin1ag/11m/mOx2nachsx8EvgaresTlkXESOekvZ0OtmGxfSnPPI00F50BnBsR99E69fhqWj1323GKMnNr8fVRWn9kns4s+J2ei6F+PbC+uNpzHnA+cEXFNdXNFcBbivdvAf6pbf1PFVd6vhzYOTIUNZcV5yA/DtyRmX/ctsl27FBErCx66ETEAuAsWtcmfBV4Q7Hb6DYcads3AF9JH8pBZv5qZq7OzHW0/u37Smb+JLbjlETEoohYPPIe+AHgVmbD73RmzrkX8DrgO7TOyf161fXM5hdwGfAwMETrr8230Tqndg1wd/H1mGLfoHVnwXeBW4CNVdc/G17AK2gNtd0M3FS8Xmc7TqkNTwFuLNrwVuDiYv2zgeuAzcDfA/OL9QPF8uZi+7Or/hlm2ws4E/ii7Tittns28O3iddtIjsyG32mfKCdJUpeYi8PvkiR1JUNdkqQuYahLktQlDHVJkrqEoS5JUpcw1KUaiYhGMSvUyGtdSZ+zMiKGIuJnyzj+FOp4vRMuSZ0z1KV62ZetWaFGXvd18k3F7IRT8UbgWuCCqRY4w15PazZFSR0w1KWai4h1EfGNiPjP4vV9xfozozWP+6dpPfCCiHhztOYlvykiPjZB2F8AvAdYHREHJ56IiN0R8YFiEourI+L0iPhaRNwTEecW+wxExF8Vc03fGBGvKta/NSL+rO1YXxx5/nhx3PdHa770ayPiWcXPcS7wh0W9z5nxxpO6jKEu1cuCtqH3zxfrHgVem5mnAW8CPtK2/+m0nna1ISJeUGw/IzNfDDSAnxz9ARGxBjguM68DPlt8z4hFwNcy86XALuB3gNcCPwq8r9jn5wEy80W0/jj4VEQMTPJzLQKuzdZ86V8H3p6Z/0Hr8Zq/XIxKfHfS1pHmuLk4S5tUZ/uKQG7XD/xZRIwE9XPbtl2XmfcW718DvBS4vpghbgGHJpxodz6tMIfWpB8fB0aeWT8I/Gvx/hbgQGYORcQtwLpi/SuAPwXIzDsj4v5RNY1lEPhi8f4GWn8oSJoiQ12qv18CtgGn0hp929+2bU/b+wA+lZm/OsnxLgCeFREjvfgTImJ9Zt4NDOWhZ0s3gQMAmdlsm+VrvDllh3n66GB77739uA38t0maFoffpfpbCjycmU3gvwPjnSe/BnhDMf8zEXFMRJzYvkNEPA9YlJmrMnNdtmbz+j1avfdOfZ1iWD8ingusBe4C7qM1H3pPMcR/egfH2gUsnsJnS3OaoS7V30eBt0TEtbSGufeMtVNm3g78BvCliLgZ+DJw/KjdLqA1N3S7f2BqV8F/FOgthuQ/A7w1Mw8A/w7cS2vY/oPAf3ZwrMuBXy4uuPNCOWkSztImSVKXsKcuSVKXMNQlSeoShrokSV3CUJckqUsY6pIkdQlDXZKkLmGoS5LUJQx1SZK6xP8H6rDNlFGOC1wAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x, y = ecdf(df['fare_amount'])\n",
    "plt.figure(figsize = (8, 6))\n",
    "plt.plot(x, y)\n",
    "plt.ylabel('Percentile'); \n",
    "plt.xlabel('Fare Amount');\n",
    "plt.title('Fare Amount ECDF'); "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df[df['fare_amount'].between(left = 2.5, right= 70)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x, y = ecdf(df['fare_amount'])\n",
    "plt.figure(figsize = (8, 6))\n",
    "plt.plot(x, y)\n",
    "plt.ylabel('Percentile'); \n",
    "plt.xlabel('Fare Amount');\n",
    "plt.title('Fare Amount ECDF'); "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Frequency')"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['passenger_count'].value_counts().plot.bar();\n",
    "plt.title('Passenger Counts')\n",
    "plt.xlabel('Passengers Numbers') \n",
    "plt.ylabel('Frequency')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.loc[df['passenger_count'] < 6]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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+ksAAAAAmJWxhVKttQ+11u7odz+R5LD+/VlJ3tFa+05r7StJrknykP51TWttXWtta5J3JDmrqirJo5K8p//8W5I8YajfAQAAAMDsLZQ1pf5nkov794cmuX7k2Pq+bXft35tk00jANdUOAAAAwAK1bD7/eFV9OMn9pjn0gtba+/pzXpDkjiRvm/rYNOe3TB+gtT2cv7uanpbkaUlyxBFH7LZ2AADmhv4XADCdeQ2lWmuP2dPxqjonyU8meXRrbSpIWp/k8JHTDktyQ/9+uvabk6yqqmX9bKnR86er6cIkFybJSSedtNvwCgCAuaH/BQBMZ5xP3zstyXOTnNla2zJy6KIkT6mqA6rq6CTHJvlkkk8lObZ/0t6KdIuhX9SHWf+U5En9589J8r6hfgcAAAAAszevM6X24o+THJDkkm6t8nyitfb01tqVVfWuJP+Z7ra+Z7TWtidJVf1akg8mWZrkTa21K/u/9dwk76iqlyb5bJI3DvtTAAAAAJiNsYVSrbUf2MOxlyV52TTtH0jygWna16V7Oh8AAAAAE2ChPH0PAAAAgP2IUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABicUAoAAACAwQmlAAAAABjcsnEXAAAAc+bqS5LLX5tsui5ZdWTysGclx5067qoAgGmYKQUAwOJw9SXJxc9JNt+YHLi62178nK4dAFhwhFIAACwOl782WbIiWbEyqeq2S1Z07QDAgiOUAgBgcdh0XbL8oJ3blh+UbPrqeOoBAPZIKAUAwOKw6shk2207t227LVl1xHjqAQD2SCgFAMDi8LBnJTu2Jlu3JK112x1bu3YAYMERSgEAsDgcd2py+iuTg++b3L6p257+Sk/fA4AFatm4CwAAgDlz3KlCKACYEGZKAQAA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\n",
      "text/plain": [
       "<Figure size 1440x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(1, 2, figsize = (20, 8), sharex=True, sharey=True)\n",
    "axes = axes.flatten()\n",
    "\n",
    "# Plot Longitude (x) and Latitude (y)\n",
    "sns.regplot('pickup_longitude', 'pickup_latitude', fit_reg = False, \n",
    "            data = df, ax = axes[0]);\n",
    "sns.regplot('dropoff_longitude', 'dropoff_latitude', fit_reg = False, \n",
    "            data = df, ax = axes[1]);\n",
    "axes[0].set_title('Pickup Locations')\n",
    "axes[1].set_title('Dropoff Locations');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Feature Engineering"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Absolute difference in latitude and longitude\n",
    "df['abs_lat_diff'] = (df['dropoff_latitude'] - df['pickup_latitude']).abs()\n",
    "df['abs_lon_diff'] = (df['dropoff_longitude'] - df['pickup_longitude']).abs()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Absolute latitude difference vs Absolute longitude difference')"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.lmplot('abs_lat_diff', 'abs_lon_diff', fit_reg = False, data = df)\n",
    "plt.title('Absolute latitude difference vs Absolute longitude difference')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(13922, 9)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "zero_diff = df[(df['abs_lat_diff'] == 0) & (df['abs_lon_diff'] == 0)]\n",
    "zero_diff.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def minkowski_distance(x1, x2, y1, y2, p):\n",
    "    return ((abs(x2 - x1) ** p) + (abs(y2 - y1)) ** p) ** (1 / p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['euclidean'] = minkowski_distance(df['pickup_longitude'], df['dropoff_longitude'],\n",
    "                                       df['pickup_latitude'], df['dropoff_latitude'], 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.6/site-packages/matplotlib/figure.py:98: MatplotlibDeprecationWarning: \n",
      "Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
      "  \"Adding an axes using the same arguments as a previous axes \"\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(0, 500)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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VetaaxsAAPu9XXqPXFUdm+QHknwgyb27+5pkEXtJ7jVmOyrJVUuLbRtjOxvftsZ4drKN1ft1ZlVtqaott9x0w648JQCAaW045KrqrknemuSZ3f2lnc26xljfivEN6+5zuvv47j7+gLscsiuLAgBMa0MhV1V3zCLifre7f38Mf268LJrx9doxvi3JMUuLH53k6nXGj15jfGfbAADY723kqtVK8pokl3X3S5YmnZ9k5crTzUnevjT+5HH16olJbhgvi16Y5KSqOmxc5HBSkgvHtBur6sSxrSevWtda2wAA2O8duIF5HpHkZ5NcUlUfGWO/nOTsJOdV1RlJrkzypDHtgiSPTbI1yU1JnpIk3b29ql6U5ENjvhd29/Zx/6lJXpfk4CTvHLfsZBsAAPu9dUOuu/8ia7+PLUkes8b8neRpO1jXa5O8do3xLUm+f43xL661DQAAfLIDAMC0hBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApIQcAMCkhBwAwKSEHADApNYNuap6bVVdW1UfXxo7vKouqqrLx9fDxnhV1curamtVfayqHrq0zOYx/+VVtXlp/GFVdclY5uVVVTvbBgAACxs5I/e6JKesGjsrybu6e1OSd43HSXJqkk3jdmaSVyWLKEvy/CQ/mOSEJM9fCrNXjXlXljtlnW0AAJANhFx3/3mS7auGT0ty7rh/bpInLo2/vhfen+TQqjoyyclJLuru7d19XZKLkpwypt29u9/X3Z3k9avWtdY2AADI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\n",
      "text/plain": [
       "<Figure size 720x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (10,8))\n",
    "plt.hist(df['euclidean'])\n",
    "plt.title('Euclidean Distance Distribution')\n",
    "ax = plt.subplot(111)\n",
    "ax.set_xlim([0, 500])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (10, 6))\n",
    "\n",
    "for p, grouped in df.groupby('passenger_count'):\n",
    "    sns.kdeplot(grouped['fare_amount'], label = f'{p} passengers');\n",
    "    \n",
    "plt.xlabel('Fare Amount'); plt.ylabel('Density')\n",
    "plt.title('Distribution of Fare Amount by Number of Passengers');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mean</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>passenger_count</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.919777</td>\n",
       "      <td>1790</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>11.083368</td>\n",
       "      <td>345414</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>11.688427</td>\n",
       "      <td>73763</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>11.392164</td>\n",
       "      <td>21733</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11.591508</td>\n",
       "      <td>10589</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>11.133058</td>\n",
       "      <td>35283</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      mean   count\n",
       "passenger_count                   \n",
       "0                 8.919777    1790\n",
       "1                11.083368  345414\n",
       "2                11.688427   73763\n",
       "3                11.392164   21733\n",
       "4                11.591508   10589\n",
       "5                11.133058   35283"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby('passenger_count')['fare_amount'].agg(['mean', 'count'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.groupby('passenger_count')['fare_amount'].mean().plot.bar(color = 'b');\n",
    "plt.title('Average Fare by Passenger Count');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Haversine distance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Radius of the earth in kilometers\n",
    "R = 6378\n",
    "\n",
    "def haversine_np(lon1, lat1, lon2, lat2):\n",
    "    \"\"\"\n",
    "    Calculate the great circle distance between two points\n",
    "    on the earth (specified in decimal degrees)\n",
    "\n",
    "    All args must be of equal length.    \n",
    "    \n",
    "    source: https://stackoverflow.com/a/29546836\n",
    "\n",
    "    \"\"\"\n",
    "    # Convert latitude and longitude to radians\n",
    "    lon1, lat1, lon2, lat2 = map(np.radians, [lon1, lat1, lon2, lat2])\n",
    "\n",
    "    # Find the differences\n",
    "    dlon = lon2 - lon1\n",
    "    dlat = lat2 - lat1\n",
    "\n",
    "    # Apply the formula \n",
    "    a = np.sin(dlat/2.0)**2 + np.cos(lat1) * np.cos(lat2) * np.sin(dlon/2.0)**2\n",
    "    # Calculate the angle (in radians)\n",
    "    c = 2 * np.arcsin(np.sqrt(a))\n",
    "    # Convert to kilometers\n",
    "    km = R * c\n",
    "    \n",
    "    return km"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['haversine'] =  haversine_np(df['pickup_longitude'], df['pickup_latitude'],\n",
    "                         df['dropoff_longitude'], df['dropoff_latitude']) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ0AAAD8CAYAAACsAHnpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xt8VeWZ6PHfk50LJFwCISByMUGCCiooEXEc7aijYKvi6UiF06k6dUov6nSGz2mFGevMWJ1z6DlTWmdsrRbFKoporaKlWhWl1gsQFIGAQAgBwjUkAXK/7P2cP/a7w2azd7LVTbKyfL6fz/5k7Xe961mXDXnyvutd7xZVxRhjjOkOaT19AMYYY744LOkYY4zpNpZ0jDHGdBtLOsYYY7qNJR1jjDHdxpKOMcaYbmNJxxhjTLexpGOMMabbWNIxxhjTbdJ7+gC8ZsiQIVpQUNDTh2GMMb3KunXrDqtqflf1LOnEKCgooKSkpKcPwxhjehUR2ZVMPeteM8YY020s6RhjjOk2lnSMMcZ0G7unY4zxrba2NiorK2lubu7pQ/GNPn36MHLkSDIyMj7T9pZ0jDG+VVlZSf/+/SkoKEBEevpwej1Vpbq6msrKSgoLCz9TDOteM8b4VnNzM3l5eZZwUkREyMvL+1wtR0s6xhhfs4STWp/3elrSMcYY020s6RhjPOmd7VVc9pOVNLcFe/pQPpeKigrOPffcHj2Gffv2cdNNN/XoMURY0jHGeNKOQ/XsqWniWHNbTx9Kr9He3h63/PTTT+f555/v5qOJz5KOMcaT2kMKQCjUwweSAsFgkG9961tMmDCBa665hqamJh599FEuuugiJk6cyN/8zd/Q2NjI0aNHKSgoIOROurGxkVGjRtHW1saOHTuYPn06kydP5rLLLuOTTz4B4LbbbmPu3LlcccUV3H333axatYpJkyYxadIkLrjgAurq6k5obS1evJivfvWrTJ8+naKiIn74wx92HOcf//hHLrnkEi688EJmzpxJfX19yq+FDZk2xnhSSMNJJ+h+fl7//nIpm/cdS0msiPGnD+Bfr5/QZb3t27fzzDPP8Oijj/K1r32N3/72t3z1q1/lW9/6FgD33HMPixYt4q677mLixImsWrWKK664gpdffplp06aRkZHBnDlzePjhhykqKmL16tV873vfY+XKlQBs27aNN954g0AgwPXXX89DDz3EpZdeSn19PX369DnpeNavX89HH31EVlYWZ511FnfddRd9+/bl/vvv54033iAnJ4cFCxbw05/+lHvvvTel1yyplo6ITBeRrSJSJiLz4qzPEpFn3frVIlIQtW6+K98qItO6iikihS7Gdhcz05VfLiIfiki7iNwUVf8KEVkf9WoWkRvdusUisjNq3aTPcpGMMd0v6Fo4oVBqkk5PKiwsZNKk8K+fyZMnU1FRwaZNm7jssss477zzWLJkCaWlpQDcfPPNPPvsswAsXbqUm2++mfr6et577z1mzpzJpEmT+Pa3v83+/fs74s+cOZNAIADApZdeyty5c3nwwQc5cuQI6eknty2uuuoqBg4cSJ8+fRg/fjy7du3igw8+YPPmzVx66aVMmjSJJ554gl27kprD81PpsqUjIgHgIeBqoBJYKyLLVXVzVLXbgVpVHSsis4AFwM0iMh6YBUwATgfeEJFxbptEMRcAC1V1qYg87GL/EtgN3Ab8r+jjU9W3gEnuWAcDZcAfo6r8QFW90ZlpjElaR0snRUknmRbJqZKVldWxHAgEaGpq4rbbbuPFF19k4sSJLF68mLfffhuAG264gfnz51NTU8O6deu48soraWhoIDc3l/Xr18eNn5OT07E8b948vvKVr7BixQqmTp3KG2+8cVJrJ/Z42tvbUVWuvvpqnnnmmRSe+cmSaelMAcpUtVxVW4GlwIyYOjOAJ9zy88BVEh7MPQNYqqotqrqTcEKYkiim2+ZKFwMX80YAVa1Q1Q1AZz28NwF/UNXGJM7LGONhkWSTqu41r6mrq2P48OG0tbWxZMmSjvJ+/foxZcoUvv/973PdddcRCAQYMGAAhYWFPPfcc0B4ZoCPP/44btwdO3Zw3nnncffdd1NcXNxx76crU6dO5d1336WsrAwI30/atm3b5zzLkyWTdEYAe6LeV7qyuHVUtR04CuR1sm2i8jzgiIuRaF+dmQXEpukHRGSDiCwUkax4GxljvCfYMZDAn0nnxz/+MRdffDFXX301Z5999gnrbr75Zp566iluvvnmjrIlS5awaNEiJk6cyIQJE3jppZfixv3Zz37Gueeey8SJE+nbty/XXnttUseTn5/P4sWLmT17Nueffz5Tp05NOmF9GqJd/BUhIjOBaar69+79N4ApqnpXVJ1SV6fSvd9BuDVzH/C+qj7lyhcBKwgnu5NiRtUf68pHAStU9byofS0GXontMhOR4cAG4HRVbYsqOwBkAo8AO1T1vjjnOAeYAzB69OjJp6If0xjz6fznH7fyXyvLePUfL+Ps0wZ8phhbtmzhnHPOSfGRmXjXVUTWqWpxV9sm09KpBEZFvR8J7EtUR0TSgYFATSfbJio/DOS6GIn2lcjXgN9FEg6Aqu7XsBbgccKJ7SSq+oiqFqtqcX5+l9+2aozpBpEh06m6p2O8IZmksxYocqPKMgl3YS2PqbMcuNUt3wSs1HATajkwy41uKwSKgDWJYrpt3nIxcDHjtyFPNpuYrjXX0sHdK7oR2JRkLGNMDwv56Dkdc1yXScfdX7kTeA3YAixT1VIRuU9EbnDVFgF5IlIGzAXmuW1LgWXAZuBV4A5VDSaK6WLdDcx1sfJcbETkIhGpBGYCv3Jderh1BYRbTqtiDn+JiGwENgJDgPuTvTDGmJ6VqoEEXd1CMJ/O572eST0cqqorCN+LiS67N2q5mXAyiLftA8ADycR05eXE6QZT1bWEu9vi7aOCOAMOVPXKePWNMd4XTMGQ6T59+lBdXW1fb5Aike/TiffAabJsRgJjjCd1dK99jr+sR44cSWVlJVVVVak6rC+8yDeHflaWdIwxnpSKlk5GRsZn/oZLc2rYhJ/GGE/y0zQ45jhLOsYYTwq6YWt+nZHgi8qSjjHGkyItHXtOx18s6RhjPCkygODzDCQw3mNJxxjjSR3P6djDob5iSccY40mpGL1mvMeSjjHGk1LxnI7xHks6xhhPsgk//cmSjjHGk6yl40+WdIwxnmT3dPzJko4xxpM6vjnUco6vWNIxxnhSx3M6lnV8xZKOMcaTUvV9OsZbLOkYYzwpZNPg+JIlHWOMJ7W7rGOj1/zFko4xxpOCLtdYS8dfLOkYYzwpZA+H+pIlHWOMJwXt4VBfSirpiMh0EdkqImUiMi/O+iwRedatXy0iBVHr5rvyrSIyrauYIlLoYmx3MTNd+eUi8qGItIvITTH7D4rIevda3lUsY4z3hdRmmfajLpOOiASAh4BrgfHAbBEZH1PtdqBWVccCC4EFbtvxwCxgAjAd+IWIBLqIuQBYqKpFQK2LDbAbuA14Os5hNqnqJPe6Iao8USxjjMdZS8efkmnpTAHKVLVcVVuBpcCMmDozgCfc8vPAVSIirnypqrao6k6gzMWLG9Ntc6WLgYt5I4CqVqjqBiCpv3s6i2WM8T6bBsefkkk6I4A9Ue8rXVncOqraDhwF8jrZNlF5HnDExUi0r3j6iEiJiHwgIpHEknQsEZnjti+pqqpKYnfGmFMtaAMJfCk9iToSpyz2X0GiOonK4yW7zup3ZbSq7hORMcBKEdkIHEs2lqo+AjwCUFxcbP/CjfEA617zp2RaOpXAqKj3I4F9ieqISDowEKjpZNtE5YeBXBcj0b5Ooqr73M9y4G3ggs8ayxjjDTZk2p+SSTprgSI3EiyT8MCA5TF1lgO3uuWbgJWqqq58lhvdVggUAWsSxXTbvOVi4GK+1NnBicggEclyy0OAS4HNnyWWMcY7Ou7pWEvHV7pMOu6eyJ3Aa8AWYJmqlorIfSISGSm2CMgTkTJgLjDPbVsKLAM2A68Cd6hqMFFMF+tuYK6LlediIyIXiUglMBP4lYhE6p8DlIjIx4STzP9R1c2dxTLGeF9kqLTNMu0vovZXxAmKi4u1pKSkpw/DmC+8C3/8OjUNrXzz0kLuvT72KQ3jNSKyTlWLu6pnMxIYYzzJBhL4kyUdY4wn2ZBpf7KkY4zxJPsSN3+ypGOM8aSgfV21L1nSMcZ4kj2n40+WdIwxnmTP6fiTJR1jjOeoKpFcY91r/mJJxxjjOdFdakHLOb5iSccY4zntUUnHWjr+YknHGOM50Q+E2kACf7GkY4zxnBO71yzp+IklHWOM54Sivh/Y5of0F0s6xhjPCVr3mm9Z0jHGeI6NXvMvSzrGGM+JHkhgo9f8xZKOMcZzoodMW/eav1jSMcZ4TshGr/mWJR1jjOcE7eFQ37KkY4zxnBNGr1lLx1eSSjoiMl1EtopImYjMi7M+S0SedetXi0hB1Lr5rnyriEzrKqaIFLoY213MTFd+uYh8KCLtInJTVP1JIvK+iJSKyAYRuTlq3WIR2Ski691r0qe9QMaY7heylo5vdZl0RCQAPARcC4wHZovI+JhqtwO1qjoWWAgscNuOB2YBE4DpwC9EJNBFzAXAQlUtAmpdbIDdwG3A0zH7bgRuUdXIPn4mIrlR63+gqpPca31X52uM6XnW0vGvZFo6U4AyVS1X1VZgKTAjps4M4Am3/DxwlYiIK1+qqi2quhMoc/HixnTbXOli4GLeCKCqFaq6AYh6VhlUdZuqbnfL+4BDQH7SV8AY4zknPKcT6qSi6XWSSTojgD1R7ytdWdw6qtoOHAXyOtk2UXkecMTFSLSvhERkCpAJ7IgqfsB1uy0UkaxkYxljek4k6WQExLrXfCaZpCNxymL/FSSqk6ryLonIcOBJ4O9UNfK30XzgbOAiYDBwd4Jt54hIiYiUVFVVJbM7Y8wpdDzppFn3ms8kk3QqgVFR70cC+xLVEZF0YCBQ08m2icoPA7kuRqJ9nUREBgC/B+5R1Q8i5aq6X8NagMcJd+udRFUfUdViVS3Oz7eeOWN6WmRGgoxAmrV0fCaZpLMWKHKjyjIJDwxYHlNnOXCrW74JWKnhqWGXA7Pc6LZCoAhYkyim2+YtFwMX86XODs5t/zvgN6r6XMy64e6nEL43tCmJ8zXG9LDIfRxr6fhPl0nH3V+5E3gN2AIsU9VSEblPRG5w1RYBeSJSBswF5rltS4FlwGbgVeAOVQ0miuli3Q3MdbHyXGxE5CIRqQRmAr8SkUj9rwGXA7fFGRq9REQ2AhuBIcD9n+EaGWO6WaR7LSs9zabB8Rmx76o4UXFxsZaUlPT0YRjzhfZu2WG+/uvVFORl09oe4r35V/X0IZkuiMg6VS3uqp7NSGCM8Zx2G0jgW5Z0jDGeE4pOOvacjq9Y0jHGeM4Jz+lYS8dXLOkYYzwnqNEtHUs6fmJJxxjjOdHda/acjr9Y0jHGeE6kpZOZbgMJ/MaSjjHGc06YBsdaOr5iSccY4zmRRJOZbgMJ/MaSjjHGc6yl41+WdIwxnnPChJ8KNnOKf1jSMcZ4TvSEnwDW2PEPSzrGGM/pGL0WCH/Flt3X8Q9LOsYYzwmFjg+ZBuy+jo9Y0jHGeE70QAKwlo6fWNIxxnhObNKxlo5/WNIxxnhO9IwEACGbado3LOkYYzwnepZpwKbC8RFLOsYYzwlZ95pvWdIxxnjOSd1r1tLxDUs6xhjPibR00tNc95q1dHwjqaQjItNFZKuIlInIvDjrs0TkWbd+tYgURK2b78q3isi0rmKKSKGLsd3FzHTll4vIhyLSLiI3xez/Vld/u4jcGlU+WUQ2un08KCLyaS6OMaZnBFUJpAlpYknHb7pMOiISAB4CrgXGA7NFZHxMtduBWlUdCywEFrhtxwOzgAnAdOAXIhLoIuYCYKGqFgG1LjbAbuA24OmY4xsM/CtwMTAF+FcRGeRW/xKYAxS51/SuztcY0/PaQ0pAhECazUjgN8m0dKYAZaparqqtwFJgRkydGcATbvl54CrXqpgBLFXVFlXdCZS5eHFjum2udDFwMW8EUNUKVd0AxA6enAa8rqo1qloLvA5MF5HhwABVfV/DswX+JhLLGONtoZCSlkZH0rGWjn8kk3RGAHui3le6srh1VLUdOArkdbJtovI84IiLkWhfyR7fCLfc2XEbYzwoGIKAHO9es5aOfySTdOLdB4n9F5CoTqrKO/O5Y4nIHBEpEZGSqqqqLnZnjDnVQu6ezvGWTg8fkEmZZJJOJTAq6v1IYF+iOiKSDgwEajrZNlH5YSDXxUi0r2SPr9Itd3bcAKjqI6parKrF+fn5XezOGHOqBUM2kMCvkkk6a4EiN6osk/DAgOUxdZYDkVFjNwEr3X2U5cAsN7qtkPDN/DWJYrpt3nIxcDFf6uL4XgOuEZFBbgDBNcBrqrofqBORqe5e0S1JxDLGeEAwpqVj3Wv+0WXScfdX7iT8y30LsExVS0XkPhG5wVVbBOSJSBkwF5jnti0FlgGbgVeBO1Q1mCimi3U3MNfFynOxEZGLRKQSmAn8SkRK3T5qgB8TTmRrgftcGcB3gV8THsCwA/jDZ7hGxphuFgopaSK4CQmspeMj6V1XAVVdAayIKbs3armZcDKIt+0DwAPJxHTl5YRHt8WWr+XE7rLodY8Bj8UpLwHOjbeNMca72l33WuTROpt7zT9sRgJjjOd0tHQio9espeMblnSMMZ4TVCU9IPacjg9Z0jHGeE7QzUiQZt1rvmNJxxjjOSFV0qJHr9lzOr5hSccY4znBjrnX3Htr6fiGJR1jjOcEQ5AW9XCoDSTwD0s6xhjPCYZCBGzCT1+ypGOM8ZygYgMJfMqSjjHGc0KhmGlwrKXjG5Z0jDGeE4xJOtbS8Q9LOsYYzwlqeEaC49+n08MHZFLGko4xxnOse82/LOkYYzwnMuFnwL5Px3cs6RhjPCcU6V6zh0N9x5KOMcZzYgcSWPeaf1jSMcZ4TjC2e81aOr5hSccY4zkhdbNMW0vHdyzpGGM856SWjiUd37CkY4zxnJC6CT87Hg7t4QMyKZNU0hGR6SKyVUTKRGRenPVZIvKsW79aRAqi1s135VtFZFpXMUWk0MXY7mJmdrYPEfm6iKyPeoVEZJJb97bbR2Td0M92mYwx3ak9FCIg2EACH+oy6YhIAHgIuBYYD8wWkfEx1W4HalV1LLAQWOC2HQ/MAiYA04FfiEigi5gLgIWqWgTUutgJ96GqS1R1kqpOAr4BVKjq+qhj+3pkvaoeSvrKGGN6TMh9tYENJPCfZFo6U4AyVS1X1VZgKTAjps4M4Am3/DxwlYiIK1+qqi2quhMoc/HixnTbXOli4GLe2MU+os0GnkninIwxHhYMKelpUc/pWEvHN5JJOiOAPVHvK11Z3Dqq2g4cBfI62TZReR5wxMWI3VeifUS7mZOTzuOua+1HcZKUMcaDgnriQALrXvOPZJJOvF/Usf8CEtVJVXmXxyEiFwONqropav3XVfU84DL3+kacGIjIHBEpEZGSqqqqeFWMMd0oFArPSGCzTPtPMkmnEhgV9X4ksC9RHRFJBwYCNZ1sm6j8MJDrYsTuK9E+ImYR08pR1b3uZx3wNOFuvZOo6iOqWqyqxfn5+fGqGGO6UaSlI9bS8Z1kks5aoMiNKssk/Mt9eUyd5cCtbvkmYKWqqiuf5UaeFQJFwJpEMd02b7kYuJgvdbEPRCQNmEn43hCuLF1EhrjlDOA6ILoVZIzxqKBr6UB4BJu1dPwjvasKqtouIncCrwEB4DFVLRWR+4ASVV0OLAKeFJEywq2PWW7bUhFZBmwG2oE7VDUIEC+m2+XdwFIRuR/4yMUm0T6cy4FKVS2PKssCXnMJJwC8ATz6Ka6NMaaHRB4OhfDXVgdDPXxAJmW6TDoAqroCWBFTdm/UcjPhlka8bR8AHkgmpisvJ043WBf7eBuYGlPWAEyOV98Y423RSSctLTwtjvEHm5HAGOM5IY1t6VjS8QtLOsYYzwmGtGO4dFqaJR0/saRjjPEUVe2Yew3CAwmse80/LOkYYzwl0qiJtHSse81fLOkYYzwlkmAC7rdTmrV0fMWSjjHGUyJJJ80GEviSJR1jjKdEHgRNj7qnY8/p+IclHWOMp3S0dMSe0/EjSzrGGE8JddzTse41P7KkY4zxlEj32vEZCWzuNT+xpGOM8ZRQTPdaQAS1pOMblnSMMZ4S29IJ2IwEvmJJxxjjKe1Bl3QiAwlslmlfsaRjjPGUUJyWjo1e8w9LOsYYTwmG4gwksO4137CkY4zxlEir5viMBPacjp9Y0jHGeErk/k1AbCCBH1nSMcZ4ykkTftrDob5iSccY4ykd3WtiAwn8yJKOMcZT2mOnwbHuNV9JKumIyHQR2SoiZSIyL876LBF51q1fLSIFUevmu/KtIjKtq5giUuhibHcxMzvbh4gUiEiTiKx3r4ejYk0WkY1umwdF3J9OxhjPOmn0mghByzm+0WXSEZEA8BBwLTAemC0i42Oq3Q7UqupYYCGwwG07HpgFTACmA78QkUAXMRcAC1W1CKh1sRPuw9mhqpPc6ztR5b8E5gBF7jW9q/M1xvSs2Od00uT41Dim90umpTMFKFPVclVtBZYCM2LqzACecMvPA1e5VsUMYKmqtqjqTqDMxYsb021zpYuBi3ljF/uIS0SGAwNU9X0NT9z0m6hYxhiP6mjp2Og1X0om6YwA9kS9r3RlceuoajtwFMjrZNtE5XnAERcjdl+J9gFQKCIficgqEbksqn5lF8dtjPGYUMw3h6aJDSTwk/Qk6sRrTcT+C0hUJ1F5vGTXWf3O9rEfGK2q1SIyGXhRRCYkedzhwCJzCHfDMXr06HhVjDHdxCb89LdkWjqVwKio9yOBfYnqiEg6MBCo6WTbROWHgVwXI3Zfcffhuu6qAVR1HbADGOfqj+ziuHHbPaKqxapanJ+fn/BCGGNOvZO/OdS+T8dPkkk6a4EiN6osk/DAgOUxdZYDt7rlm4CV7j7KcmCWG3lWSPhm/ppEMd02b7kYuJgvdbYPEcl3AxMQkTFuH+Wquh+oE5Gp7t7PLVGxjDEeFUk66VHfHGoDCfyjy+41VW0XkTuB14AA8JiqlorIfUCJqi4HFgFPikgZ4RbOLLdtqYgsAzYD7cAdqhoEiBfT7fJuYKmI3A985GKTaB/A5cB9ItIOBIHvqGqNW/ddYDHQF/iDexljPCx2yHTAWjq+ksw9HVR1BbAipuzeqOVmYGaCbR8AHkgmpisvJzy6LbY87j5U9bfAbxPsuwQ4N946Y4w3xc5IkCZCyL5PxzdsRgJjjKd0TPjZ0dLBBhL4iCUdY4ynHB+9hvtp3Wt+YknHGOMpodjRazaQwFcs6RhjPCXuhJ/W0vENSzrGGE8JxZvw01o6vmFJxxjjKfFmJLDuNf+wpGOM8ZS4E35a95pvWNIxxnhKx3M6afacjh9Z0jHGeMrJLR2speMjlnSMMZ4SjPlqg4B9tYGvWNIxxnjKSV9XnSaoglri8QVLOsYYT4l0pUXPMg02FY5fWNIxxnjKSTMSuORj93X8wZKOMcZTTp7wM/zTRrD5gyUdY4ynBDu+2iD8vqN7zVo6vmBJxxjjKaGQkiYgsd1rdk/HFyzpGGM8Jaja0aUGEHCLNhWOP1jSMcZ4SjB0YtKxgQT+YknHGOMpwZB23MeB46PYrKXjD5Z0jDGeEgxpR+sGjo9es5aOPySVdERkuohsFZEyEZkXZ32WiDzr1q8WkYKodfNd+VYRmdZVTBEpdDG2u5iZne1DRK4WkXUistH9vDIq1ttuH+vda+inv0TGmO4UOumezvGBBK9u2s9P/7i1pw7NpECXSUdEAsBDwLXAeGC2iIyPqXY7UKuqY4GFwAK37XhgFjABmA78QkQCXcRcACxU1SKg1sVOuA/gMHC9qp4H3Ao8GXNsX1fVSe51qMsrYozpUSd1r0U9p7P843385oNdPXVoJgWSaelMAcpUtVxVW4GlwIyYOjOAJ9zy88BVEh7vOANYqqotqroTKHPx4sZ021zpYuBi3tjZPlT1I1Xd58pLgT4ikpXsBTDGeEtIY7vXwj+DqtQ2tHG0qc2GT/diySSdEcCeqPeVrixuHVVtB44CeZ1sm6g8DzjiYsTuK9E+ov0N8JGqtkSVPe661n4kEvXnUxQRmSMiJSJSUlVVFa+KMaabJBpIEAwptY2tqMLRpraeOjzzOSWTdOL9oo79MyNRnVSVd3kcIjKBcJfbt6PWf911u13mXt+IEwNVfURVi1W1OD8/P14VY0w3aY8ZMt0xDY4qNQ2tAB0/Te+TTNKpBEZFvR8J7EtUR0TSgYFATSfbJio/DOS6GLH7SrQPRGQk8DvgFlXdEQmqqnvdzzrgacLdesYYDwvFJp2Ylg7Q8dP0PskknbVAkRtVlkl4YMDymDrLCd/EB7gJWKnhL79YDsxyI88KgSJgTaKYbpu3XAxczJc624eI5AK/B+ar6ruRAxKRdBEZ4pYzgOuATUmcrzGmBwWVuA+HHm1qoy0Y7tywlk7vld5VBVVtF5E7gdeAAPCYqpaKyH1AiaouBxYBT4pIGeHWxyy3bamILAM2A+3AHaoaBIgX0+3ybmCpiNwPfORik2gfwJ3AWOBHIvIjV3YN0AC85hJOAHgDePRTXyFjTLeKzL0WEWnpHK4/fqu21pJOr9Vl0gFQ1RXAipiye6OWm4GZCbZ9AHggmZiuvJw43WCJ9qGq9wP3Jzj0yQnKjTEeFTsNTmT5cN3xpFNj3Wu9ls1IYIzxlKBqx4g1ON69drj+eKKxlk7vZUnHGOMpoZCSHjh5IEGke00EahttyHRvZUnHGOMp7SfNSBD+GWnpjBqUbS2dXsySjjHGU06akSCqpZOeJowenG33dHoxSzrGGE+JnZGgYyBBfQu52ZkMzsm0lk4vZknHGOMpsV9tkBaVdAbnZDA4J9Oe0+nFLOkYY3pcyH1tQXNbMPzVBnJy91pzW4hB2ZnkZmdwrLmdtmCopw7XfA5JPadjjDGn0rrdtXznqQ+ZddEogiElK/3k7jWAwTnh7jWAI41t5PfPoqGlnUCa0Ccj0O3HbT49a+kYY3rc9oP1ACxdu4fN+4+dOA1OVKtnUE4mg7LDSScy/9ojsK9oAAAS/klEQVQtj63hRy/aDFe9hSUdYzyqtqEV/YJ8RXN5VT19MtIoPmMQzW2huDMSAAzOPt7SqW1opbU9xMd7jvDh7tpuP2bz2VjSMcaDdlc3cvF/vMmKjQd6+lC6xY6qegqH9OPB2ReQm51BTtbxnv9A1G+p2JZORXUD7SGlorqRlvZgdx+2+Qzsno4xHrT84720BkOs2VnNV84f3tOHc8rtqGrg/JEDOT23L7//h8vISj+eaaK71yKj1wBqGtpoD9UB4RFv5VUNnDN8QPceuPnUrKVjjAe9smE/AJv2HevhI0k9VeUHz33Me2WHAWhuC1JZ28iZ+f0AGJHblyH9jn/jfHT3Wq4bvQbhls42dy8IYNvBuu44fPM5WdIxxmO2H6zjkwN15GZnsHnfMYIhf93X2VHVwHPrKnl6zW4AdlU3ElIYk58Tt/4JLZ3sTPpkBMjJDFDT0Mr2g3WMyO1LIE06BiMAHDrWTLsNqfYkSzrGeMzLG/aTJvCdL51JU1uQ8qr6rjfqRVbvrAZgzc4aVJUd7vwiLZ1YaTFDpiF8b6e2oZVtB+uYcPoAzsjL7mjpHGls5Uv/920W/XnnqTwN8xlZ0jHGQ1SVVz7ex9QxeVxx1lAANu072sNH9fkcrm/haNSs0Gt21gBwqK6FiupGdhwKJ51ELZ1AzJBpCCefA8eaqahuZNyw/owb2p/tLs6qbVU0tQV5tfSLMQijt7GkY4yHbN5/jPLDDVx3/umcmZ9DVnoam/b23vs6qsrsRz7g20+VdLxfXV7D2af1B2DNzmrKDzdw+sA+ZGfGH9cUmWU6M5BGTmb4AdBB2Zl8vOcIwZBSNKwf407rz67qBprbgry9tQqA9XuOdEyXo6q8v6OakM+6KnsjSzrGeMhv1+0lPU2Yfu5ppAfSOGf4ADbt7T0tnZb2IAePNXe8/3B3LdsP1fNBeQ3lVfXsqWniwLFm/ufFo8nLyWT1zhp2VNVz5tD4XWtwvKUzKCcDccuDczJpaA0PkR43rD/jhvUjpOGHTFdtq2LcsH6owp+2hRPQS+v3MfvRD3jho72n6tRNkizpmC+0w/UtvLR+7ymbx2tXdQOvbz6YVN2jjW08u3Y3150/vOPexXkjBrJ53zHP/oUeO8jhe099yF//5yqq3FdLL1tbSd+MAGkCz6+r7LifM3VMHlMKB7O6vIbyqgbGDInftQbHR69Fns+JXg6kCWPycxg3LNxyen7dHmoaWrnjirHk5WTy1tZDqCq//nM5AL9+p7zjgduPdtfyL7/bSHObPd/TnZJKOiIyXUS2ikiZiMyLsz5LRJ5161eLSEHUuvmufKuITOsqpogUuhjbXczMVO/DGAj/wvzOk+v4/tL1XPvzd/jz9sMpjf/Ch5V8+efv8K3flCSVeJ5avYuG1iBzLj+zo+zcEQOoa2lnV01jSo/t01JVth6oOyHJ/Ob9Ci788et8vOcIAH/efpg3PzlEXUs7P39zG42t7byyYR/XnT+cL43L54UP9/J+eTWDsjMYm9+PKYWD2XukifqW9k5bOpGBBJFEHF4OD5s+Iy+brPQABXk5pKcJy0oqSRP40rh8vnRWPqu2VfH+jmo27T3GxYWD+eRAHe/tqKapNcg/LP2IJat384u3d3TEfXr1bv73H7ackOSb24K+G0HYk7pMOiISAB4CrgXGA7NFZHxMtduBWlUdCywEFrhtxwOzgAnAdOAXIhLoIuYCYKGqFgG1Lnaq99Fjjja2cay5zbN/uX6RPLxqByW7arn9LwtpbQ/xt4tW8+8vl3b8gqmsbeTBN7ef0F2UjIaWduYuW8/cZR8z4fSBnH1af+a/sPGk6fjbgiG2H6xDVWluC/L4uxVcPi6f8acff8BxwukDAU5pF9vWA3UnPONytKmN+17ezCsb9gHhhPOT17Yy7Wd/4h+e+Yi2YIiSihrue3kzR5va+N6SD6lpaOU/VmxhRG5fZl00imfW7OG/VpbR0BpkZvEovlY8igPHmnn5431cVDCYtDRhSuHgjn0mGrkG0d1rx5NOrmvpnOVaOJnpaRQOyaGpLciFoweRm53JFWcN5UhjG/Ne2Mig7AweuaWYIf0y+fU75fz8ze3sqWli4qhcfvl2GWWH6nhlwz7++Xcb+dWqcn76+jYASvcd5fKfvMVXf/ke1e7rsqvqWvi35aUn/JHS3BZkzc4aWtuPt5hV1YZtx5HMjARTgDJVLQcQkaXADGBzVJ0ZwL+55eeB/5Zw5+sMYKmqtgA7RaTMxSNeTBHZAlwJ/E9X5wkX95ep2kfMcadUc1uQ3TWNHDrWwvDcPowalM2Bo82s3lnN2ooa1uysoaI6/BerSPg/zN9OPYOrxw/jT9uqeK30APn9s7hh4gguGJ1LRXUDu6obGTagD2OH9qO2oZW3t1Wx7UAdk88YxOXj8gmIUH64noaWIGfkZXN6bl+ONrWx2/1lPHpwNrl9Mzhc38LeI03kZKUzIrcvWelpHKxr4dCxZgbnZDJ8YF9Cquw/2syRxlaGDejDsAF9aGxtp7K2iaa2ICMH9WVwdiZb9texpqKGdPeLo2hoPw7VtVBZ20T/PumMHpxNmgjbDtZRUd3AyEHZnHVaf1SVskP1HK5vpSAvmzPycjjS2MrWg3U0tQYZN6w/owZnU9/SzoGjzQTShOED+5CdGaC2sY1Ddc3kZKYzbEAfAmlCVV0L1Q0tDM7JJL9fFh/uPsLStbt5f0c1ja1B2oIhLhmTx61/UcBlRUM67geoKpv2HmPh69v4ynnDuecr5/CDaWfxf/7wCY+/W0FlbRNfGpfP/16xhYbWIL9+p5x/nzGBvxybz+b9x6iub2HcsP6MHdqP8qoG1uyspjUYYkphHgL847Pr2VXdwPevKuKuK8dSVlXP9f/1Z+55cSM//dokqupaeHXTAR57dyf7jzYzaVQuF4zO5XB9C9+5fMwJ/6bGDetPRkB4tfQAH5RXU1JRyxVnD2XWRaMocF1Sre0hdtc0sKe2ifx+WRQOyaGqroXXNx9ky/5jTCkczF+dNZQPd9fy2J93su9IEzOLR/Hl84bz63fKeW5dJSJwc/Eopk04jXte3MTeI0089i68vbWK/n3SefzdCorPGMTvN+6nqS3I5n3HGDGoL/ffeC7fXLyW6//rz+w90sSDsy/g0jPz+P2G/fzy7R0U5GVzUcEg2oLKoOwMahvbOpLN2acNoH+fdOqa2xOOXIPo7rWMjrJIq6fIJR2AcaeFR7BdcXZ41N/lRfkE0oTdNY38w5VjGdg3g29MLWDhG9v40/bDfK14JD+cfjZ//dNV3LHkIyqqGyg+YxBn5vfjv98qo6U9yNI1e8jOCvDJ/mPMfPh9vvtXZ7Lg1U84XN/K4vcqmHP5GCaNyuU/VmyhsraJMUNyuOe6c2hqDfHQW2WUVdUzc/JIvvmXhWw/WM8LH1bS3B7ixkmnc/m4fFaX1/DGloPkZmfw5fOGM2ZIDqu2VfFBeTVjh/bjqnOGkZ0Z4J3th9l6oI6Jo3K59Mw86prb+aC8mqq6FiafMYhJo3PZU9PEh7trCaly4ehBFA7JYfvBejbuPcrAvhlMHDWQwTmZlO47xtYDdYwc1JeJI3OpbWzltdKDvLnlII//3UX075PBqZRM0hkB7Il6XwlcnKiOqraLyFEgz5V/ELPtCLccL2YecERV2+PUT9U+TonvPrWOV0sPED0/owgd73OzM7ioYDA3XzSa9DThWHMbKz85xD0vbuIeN0PuiNy+vLejmmfW7Imzh+Oy0tN48oNdcdelCcQ2opIpiz7WzraLVy/ZsljJ7jM9TWiPKYxXD6BfVjpXnTOU3L4ZhBT+sGk/tzy2hsz0NFBoD4U6thvaP4sH/se5iISnxf+3GyZQkJfNfa9s5vXNB7lkTB53XjmW//zjVv7p2Y87P5kopw3ow9PfmsrUMXlA+JfrP109jp+8upUVG1/tqDd1zGC+cckZ/Oa9XTz+bgXnjhjAJWfmnRArMz2Ns07rz+837CcrPY3zRw7k0XfKeXjVjo6RXM3toYTdP7nZGSfcPB81uC9jh/Xn529u5+dvbic9Tfj2l8YQCimPv1vB0rV7GDW4L7/97iWs2naY/165nZDCbX9RwL9eP54nP9jFvS+VkpWexgvf+wsmnD6Qe6+fwI9e3MTEkQO5/vzhiAjfu2IsC179hJsmj0REyEwXbrxgBI+/W8HFheFzDKQJUwoG80F5NacN6JPwegY6uteOz1IQSTrjhh1vIY0b2p/fs5+/OisfgIHZGUwePYj1e47wt5ecAcDfTh3NQ2+X0T8rnX/+8jnkZmfyz18+hx8+v4HRg7N55JZi+vdJZ++RJh59ZydFQ/vxxDensO9IE99cvJYfPL+Bs0/rz2O3XcSykj088qfyjuO4b8YEFr9bwTcXh0fqjRmSw3XnDee5kkqWrA4/CDu0fxZZGWnMXfbxCedS39LO4+9WdJRFkvF/rPikoyze/4NUmjhyIAePNZ/ypCNdzWIrIjOBaar69+79N4ApqnpXVJ1SV6fSvd9BuLVxH/C+qj7lyhcBKwh3650UM6r+WFc+Clihquelah/Rxx11/HOAOe7tWcDWJK9frCFAam8MdD87B2+wc/AGO4fknaGq+V1VSqalUwmMino/EtiXoE6liKQDA4GaLraNV34YyBWRdNfaia6fqn2cRFUfAR6Jt+7TEJESVS3+vHF6kp2DN9g5eIOdQ+olM3ptLVDkRpVlEr5pvzymznLgVrd8E7BSw02o5cAsN/KsECgC1iSK6bZ5y8XAxXwplftI7rIYY4w5Fbps6bj7J3cCrwEB4DFVLRWR+4ASVV0OLAKedDfxawj/gsfVW0b45n07cIeqBgHixXS7vBtYKiL3Ax+52KR4H8YYY3pAl/d0TPJEZI7rquu17By8wc7BG+wcUs+SjjHGmG5j0+AYY4zpNpZ0UsSrU+6IyCgReUtEtohIqYh835UPFpHX3XRDr4vIIFcuIvKgO48NInJhVKxbXf3tInJron2ewnMJiMhHIvKKe5+yKZO66fhzReR5EfnEfR6X9LbPQUT+yf072iQiz4hIn97wOYjIYyJySEQ2RZWl7NqLyGQR2ei2eVAk6vsYTu05/F/372mDiPxORHKj1qVkCrKUU1V7fc4X4YEKO4AxQCbwMTC+p4/LHdtw4EK33B/YRnhaoJ8A81z5PGCBW/4y8AdAgKnAalc+GCh3Pwe55UHdfC5zgaeBV9z7ZcAst/ww8F23/D3gYbc8C3jWLY93n00WUOg+s0A3Hv8TwN+75Uwgtzd9DoQfut4J9I26/rf1hs8BuBy4ENgUVZaya094xOwlbps/ANd20zlcA6S75QVR5xD3GtPJ76pEn2PKz6M7/rH6/eX+sb0W9X4+ML+njyvBsb4EXE34Adjhrmw4sNUt/wqYHVV/q1s/G/hVVPkJ9brhuEcCbxKeJukV95/7cNR/uI7PgPCIxUvccrqrJ7GfS3S9bjj+AYR/YUtMea/5HDg+K8hgd11fAab1ls8BKIj5hZ2Sa+/WfRJVfkK9U3kOMev+B7DELce9xiT4XdXZ/6dUv6x7LTXiTRU0IkHdHuO6Ny4AVgPDVHU/gPs51FVLdC49fY4/A34IRGZQTHrKJCB6yqSeOocxQBXwuOsi/LWI5NCLPgdV3Qv8P2A3sJ/wdV1H7/ocoqXq2o9wy7Hl3e2bhFtZ8OnPobP/TyllSSc14vXfempYoIj0A34L/KOqdvZVlInOpcfOUUSuAw6p6rro4k6Ox3PnQPgv/QuBX6rqBUAD4S6dRDx3Du6exwzC3TWnAzmEZ3FPdDyeO4ckfdrj7vHzEZF/Ifyc4pJIUZxqnjgHSzqpkcxUQT1GRDIIJ5wlqvqCKz4oIsPd+uHAIVee6Fx68hwvBW4QkQpgKeEutp/hpkyKczwdxyrJT5l0qlUClaq62r1/nnAS6k2fw18DO1W1SlXbgBeAv6B3fQ7RUnXtK91ybHm3cAMargO+rq5vjE9/Dh1TkMWUp5wlndTw7JQ7bhTNImCLqv40alX0tEKx0w3d4kbwTAWOuq6H14BrRGSQ+4v3Gld2yqnqfFUdqaoFhK/tSlX9OqmbMqk7zuEAsEdEznJFVxGeRaPXfA6Eu9Wmiki2+3cVOYde8znESMm1d+vqRGSquy63RMU6pURkOuFZXG5Q1ehv+kvlFGSpdapv3n1RXoRHvGwjPDLkX3r6eKKO6y8JN5M3AOvd68uE+3DfBLa7n4NdfSH85Xc7gI1AcVSsbwJl7vV3PXQ+f8Xx0WtjCP9HKgOeA7JceR/3vsytHxO1/b+4c9vKKRhh1MWxTwJK3GfxIuERUL3qcwD+HfgE2AQ8SXh0lOc/B+AZwveh2gj/tX97Kq89UOyuyQ7gv4kZMHIKz6GM8D2ayP/th7u6xiT4XZXoc0z1y2YkMMYY022se80YY0y3saRjjDGm21jSMcYY020s6RhjjOk2lnSMMcZ0G0s6xhhjuo0lHWOMMd3Gko4xxphu8/8B2yIujN/zQY0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.kdeplot(df['haversine']);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "corrs = df.corr()\n",
    "corrs['fare_amount'].plot.bar(color = 'b');\n",
    "plt.title('Correlation with Fare Amount');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Adding Featured Engineered Features to Test Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pickup_longitude</th>\n",
       "      <th>pickup_latitude</th>\n",
       "      <th>dropoff_longitude</th>\n",
       "      <th>dropoff_latitude</th>\n",
       "      <th>passenger_count</th>\n",
       "      <th>abs_lat_diff</th>\n",
       "      <th>abs_lon_diff</th>\n",
       "      <th>euclidean</th>\n",
       "      <th>haversine</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>9914.000000</td>\n",
       "      <td>9914.000000</td>\n",
       "      <td>9914.000000</td>\n",
       "      <td>9914.000000</td>\n",
       "      <td>9914.000000</td>\n",
       "      <td>9914.000000</td>\n",
       "      <td>9914.000000</td>\n",
       "      <td>9914.000000</td>\n",
       "      <td>9914.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-73.974722</td>\n",
       "      <td>40.751041</td>\n",
       "      <td>-73.973657</td>\n",
       "      <td>40.751743</td>\n",
       "      <td>1.671273</td>\n",
       "      <td>0.022133</td>\n",
       "      <td>0.023348</td>\n",
       "      <td>0.035146</td>\n",
       "      <td>3.439145</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.042774</td>\n",
       "      <td>0.033541</td>\n",
       "      <td>0.039072</td>\n",
       "      <td>0.035435</td>\n",
       "      <td>1.278747</td>\n",
       "      <td>0.025589</td>\n",
       "      <td>0.036719</td>\n",
       "      <td>0.042459</td>\n",
       "      <td>3.976739</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-74.252193</td>\n",
       "      <td>40.573143</td>\n",
       "      <td>-74.263242</td>\n",
       "      <td>40.568973</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-73.992501</td>\n",
       "      <td>40.736125</td>\n",
       "      <td>-73.991247</td>\n",
       "      <td>40.735254</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.007279</td>\n",
       "      <td>0.006354</td>\n",
       "      <td>0.013261</td>\n",
       "      <td>1.299703</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-73.982326</td>\n",
       "      <td>40.753051</td>\n",
       "      <td>-73.980015</td>\n",
       "      <td>40.754065</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.014715</td>\n",
       "      <td>0.013123</td>\n",
       "      <td>0.022423</td>\n",
       "      <td>2.219848</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>-73.968013</td>\n",
       "      <td>40.767113</td>\n",
       "      <td>-73.964059</td>\n",
       "      <td>40.768757</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.028261</td>\n",
       "      <td>0.024557</td>\n",
       "      <td>0.040170</td>\n",
       "      <td>4.049746</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>-72.986532</td>\n",
       "      <td>41.709555</td>\n",
       "      <td>-72.990963</td>\n",
       "      <td>41.696683</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>0.633213</td>\n",
       "      <td>0.849168</td>\n",
       "      <td>1.057330</td>\n",
       "      <td>100.105909</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       pickup_longitude  pickup_latitude  dropoff_longitude  dropoff_latitude  \\\n",
       "count       9914.000000      9914.000000        9914.000000       9914.000000   \n",
       "mean         -73.974722        40.751041         -73.973657         40.751743   \n",
       "std            0.042774         0.033541           0.039072          0.035435   \n",
       "min          -74.252193        40.573143         -74.263242         40.568973   \n",
       "25%          -73.992501        40.736125         -73.991247         40.735254   \n",
       "50%          -73.982326        40.753051         -73.980015         40.754065   \n",
       "75%          -73.968013        40.767113         -73.964059         40.768757   \n",
       "max          -72.986532        41.709555         -72.990963         41.696683   \n",
       "\n",
       "       passenger_count  abs_lat_diff  abs_lon_diff    euclidean    haversine  \n",
       "count      9914.000000   9914.000000   9914.000000  9914.000000  9914.000000  \n",
       "mean          1.671273      0.022133      0.023348     0.035146     3.439145  \n",
       "std           1.278747      0.025589      0.036719     0.042459     3.976739  \n",
       "min           1.000000      0.000000      0.000000     0.000000     0.000000  \n",
       "25%           1.000000      0.007279      0.006354     0.013261     1.299703  \n",
       "50%           1.000000      0.014715      0.013123     0.022423     2.219848  \n",
       "75%           2.000000      0.028261      0.024557     0.040170     4.049746  \n",
       "max           6.000000      0.633213      0.849168     1.057330   100.105909  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test = pd.read_csv('/kaggle/input/new-york-city-taxi-fare-prediction/test.csv', \n",
    "                   parse_dates = ['pickup_datetime'])\n",
    "\n",
    "# Create absolute differences\n",
    "test['abs_lat_diff'] = (test['dropoff_latitude'] - test['pickup_latitude']).abs()\n",
    "test['abs_lon_diff'] = (test['dropoff_longitude'] - test['pickup_longitude']).abs()\n",
    "\n",
    "# Save the id for submission\n",
    "test_id = list(test.pop('key'))\n",
    "\n",
    "test['euclidean'] = minkowski_distance(test['pickup_longitude'], test['dropoff_longitude'],\n",
    "                                       test['pickup_latitude'], test['dropoff_latitude'], 2)\n",
    "\n",
    "test['haversine'] = haversine_np(test['pickup_longitude'], test['pickup_latitude'],\n",
    "                         test['dropoff_longitude'], test['dropoff_latitude'])\n",
    "\n",
    "test.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "# Split data\n",
    "X_train, X_valid, y_train, y_valid = train_test_split(df, np.array(df['fare_amount']), \n",
    "                                                      test_size = 0.30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[21:39:28] WARNING: /workspace/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n",
       "             colsample_bynode=1, colsample_bytree=1, gamma=0,\n",
       "             importance_type='gain', learning_rate=0.1, max_delta_step=0,\n",
       "             max_depth=3, min_child_weight=1, missing=None, n_estimators=100,\n",
       "             n_jobs=1, nthread=None, objective='reg:linear', random_state=0,\n",
       "             reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,\n",
       "             silent=None, subsample=1, verbosity=1)"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import xgboost as xgb\n",
    "\n",
    "xgbr = xgb.XGBRegressor()\n",
    "xgbr.fit(X_train[['haversine', 'abs_lat_diff', 'abs_lon_diff', 'passenger_count']], y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore', category = RuntimeWarning)\n",
    "\n",
    "def metrics(train_pred, valid_pred, y_train, y_valid):\n",
    "    \"\"\"Calculate metrics:\n",
    "       Root mean squared error and mean absolute percentage error\"\"\"\n",
    "    \n",
    "    # Root mean squared error\n",
    "    train_rmse = np.sqrt(mean_squared_error(y_train, train_pred))\n",
    "    valid_rmse = np.sqrt(mean_squared_error(y_valid, valid_pred))\n",
    "    \n",
    "    # Calculate absolute percentage error\n",
    "    train_ape = abs((y_train - train_pred) / y_train)\n",
    "    valid_ape = abs((y_valid - valid_pred) / y_valid)\n",
    "    \n",
    "    # Account for y values of 0\n",
    "    train_ape[train_ape == np.inf] = 0\n",
    "    train_ape[train_ape == -np.inf] = 0\n",
    "    valid_ape[valid_ape == np.inf] = 0\n",
    "    valid_ape[valid_ape == -np.inf] = 0\n",
    "    \n",
    "    train_mape = 100 * np.mean(train_ape)\n",
    "    valid_mape = 100 * np.mean(valid_ape)\n",
    "    \n",
    "    return train_rmse, valid_rmse, train_mape, valid_mape\n",
    "\n",
    "def evaluate(model, features, X_train, X_valid, y_train, y_valid):\n",
    "    \"\"\"Mean absolute percentage error\"\"\"\n",
    "    \n",
    "    # Make predictions\n",
    "    train_pred = model.predict(X_train[features])\n",
    "    valid_pred = model.predict(X_valid[features])\n",
    "    \n",
    "    # Get metrics\n",
    "    train_rmse, valid_rmse, train_mape, valid_mape = metrics(train_pred, valid_pred,\n",
    "                                                             y_train, y_valid)\n",
    "    \n",
    "    print(f'Training:   rmse = {round(train_rmse, 2)} \\t mape = {round(train_mape, 2)}')\n",
    "    print(f'Validation: rmse = {round(valid_rmse, 2)} \\t mape = {round(valid_mape, 2)}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training:   rmse = 4.12 \t mape = 23.12\n",
      "Validation: rmse = 4.18 \t mape = 23.07\n"
     ]
    }
   ],
   "source": [
    "evaluate(xgbr, ['haversine', 'abs_lat_diff', 'abs_lon_diff', 'passenger_count'],\n",
    "         X_train, X_valid, y_train, y_valid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n",
      "/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEXCAYAAABBFpRtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XmcHHWd//HXu+e+kplkJudMLhIICTchQRBEQAmugO6CcrgLi4qu67q7uip4sCvquq6u7qr8VBQVQQQWZY2KgoCACIQkXCGEHOScnDO55j565vP7o2qGppmjZ6Znunv683w8+jFdVd+u+lR3zae//a1vfUtmhnPOuewQSXUAzjnnxo4nfeecyyKe9J1zLot40nfOuSziSd8557KIJ33nnMsi4y7pS/qepM8naV2zJDVJygmnH5X0gWSsO1zf7yRdnaz1DWG7X5JUL2nvWG+7j1h+IulLqY4jG0g6R1JtzPQ6SeeMwXb9M04jGZX0JW2T1CqpUdJhSU9K+rCk3v0wsw+b2RcTXNf5A5Uxsx1mVmpmXUmI/d8k3RG3/gvN7LaRrnuIcdQAnwAWmdm0PpafI6k7/LJrlLRB0t+OZYyjQdI1krrC/ep5fGeMYxg0+UkySc1hfLskfaOn0pFsZrbYzB4drFwY0/zRiCFNPpcnwkpQ/lhuN1GSPiDp0WStLzdZKxpDF5nZQ5ImAm8B/gdYBiQ1MUnKNbNoMteZJmYDB8xs/wBldptZtSQBFwIrJD1pZhvGJsRR85SZvXkkKxij4+JEM9ssaSHwKLAR+F4K4hgrKftcJB0FvAloAP4CuG8kcWSCjKrpxzKzI2a2AngvcLWk4+D1tSlJlZJ+E/4qOCjpT5Iikm4HZgG/DmsWn5I0J6zRvF/SDuCRmHmxX45HSXpG0hFJv5I0KdzW6346h/O2STpf0nLgM8B7w+29EC7vbS4K4/qcpO2S9kv6afjFRkwcV0vaEdZKPtvfeyNpYvj6unB9nwvXfz7wB2BGGMdPBnmPzczuBw4CJ8Ss/38k7ZTUIGmNpLNilv2bpHvC7TeGTQhLYpafLOnZcNndQGFc7B+UtDn8vFZImhGzzCR9RNKm8PVflHSUpKfCWO4ZTm2tv/crXHaNpD9L+qakg8C/hfOvlbRe0iFJD0iaHc5XWHZ/eIy8KOk4SdcBVwGfCt/7Xw8Wl5m9AvwJ6Dm2t0n6tKQXgWZJuZJmSPpFGPtWSR+L2a+i8P/hkKSXgdPi9rv3166kHEmfkfRq+N6ukVQj6fGw+Ath3O8Ny79T0vN67Rd37PEx4Gc8hM/l4nAbjeFx//mYZfPD4+FvFfy/PhjOP1PS02Fcz0s6e5DNXA08AdwePo/d/h2SvhN+vk2SHpc0VdK3w/Wvl3RiTPnFkh4Ll62V9Bcxy56QdE3MdG/tPfwcTdKHwmP/kKRvhcuOB74DnBXGUD+c9/J1zCxjHsA24Pw+5u8A/i58/hPgS+HzrxDUkPLCx1mA+loXMAcw4KdACVAUMy83LPMosIvgn7AE+AVwR7jsHKC2v3gJksUdccsfBT4QPr8W2AzMA0qBXwK3x8X2gzCuE4F24Nh+3qefAr8CysLXbgTe31+cca/tXU5QKbgY6AZOjinzPmAywS/FTwB7gcKY/WwD3gHkhJ/B0+GyfGA78M/h53Ep0BnzeZ0L1AOnAAXAt4HHY7ZrwApgArA4fA8eDt+zicDLwNX97Nc1wBPDeL+uAaLAP4T7WwS8K/ysjg3nfQ54Mix/AbAGKAcUlpkef2wO8P4bMD98vih8b3ti2QY8D9SEcUTCbd0YvrfzgC3ABWH5/yD40pgUvual2M+e1x+fnwTWAseEcZ8ITI6PKZw+BdhP8As7hyBZbgs/swE/4yF+LucS/K9FwnjqgXeGy+aHcf0YKA7fjxrgQPgZRIDl4Wsm97N+AVuB68J96QAqY5bfEe7nyQRfXI+F5a8M9/s/gD/EHNtbgU+F+30+0BTzWT4BXBOz7g8Aj4bPc8N9+RXBcTyHoKJ1fnzZpOTRZK1oLB70n/SfBj4b/48F3BS+kfMHWxevJdZ5fcyLTfr/EbN8UXig5DDypP8w8JGYZceE/yy5MXFUxyx/Bri8j/3KIUiGi2LmfSjmAHtDnHGvP4cgyR8O19MF/NMgn8shgiaJnv18KO49ag2fnw3sJvziDec9GfN53Qr8Z8yy0vA9mBNOG3BmzPI1wKdjpv8L+O9+YryGIHkfjnmcnsD7dQ2wI25dvyNMxOF0BGghaDo7l+BL43QgEve6n5BY0m8I39NXgS/1rCc8nq6NKbusj9huAH4cPt8CLI9Zdh39J/0NwCUDxBSb9L8LfDGuzAaC5tYBP+NEP5d+yn4H+Fr4vCfpz4pZ/tmefY+Z9zBw1QDHegcwKZzeDPxDzPI7gO/GTP8zsDZm+mSgPnz+VoIKYex+/y/wufB5Ikn/9JjlvwT+Jb5sMh4Z27wTZybBN2O8rxF8kA9K2iLp+gTWtXMIy7cTfKtXJhTlwGaE64tddy4wNWZebG+bFoKkGK+S12pbseuaOYRYdptZOUGN+lsEiayXpE+EP22PSDpMUDuJfQ/i4yxU0EQ2A9hl4ZEcE1uP170HZtZEUHOLjX1fzPPWPqb7ek96PG1m5TGPp0ns/Yo/JmYD/xP+jD9McOwJmGlmjxAkp5uBfZJukTRhgJj6coqZVZjZUWb2OTPr7ieW2QRNdYdjYvkMrx0zM3jj8dqfGoIvmUTMBj4Rt92acHuDfcZ96etzQdKbFDSB1kk6QpD84v/X4t+PK+LiOj2MqS9XA78zs57ccSdxTTwkfrzNIPgCjt/vofzfJfL/PWIZn/QlnUbwxj4Rv8zMGs3sE2Y2D7gI+Lik83oW97PK/ub3qIl5PougJloPNBP8zOyJKweoGsJ6dxMctLHrjvL6gywR9WFM8evaNcT1YGbtwKeB4yW9C0BB+/2ngfcAFeGXwxGCpDeYPcBMSbFlZ8U8f917IKmEoBlpyLEPQSLvV/xntxP4UFyiKjKzJwHM7FtmdipBE9TRBE0nfa1nOGLXsRPYGhdHmZm9I1y+hzcer/3ZCRyVYAw7gS/HbbfYzH7O4J/xUNxF0IRaY2YTgR8Sd5zFJdmdBDX92LhKzOxr8SsOj61LgfMk7VXQffkfgFMlLR5GrLuBmj72u+c4el1+AN7Qc24AyThuemVs0pc0QdI7CQ6MO8xsbR9l3hme8BHBT+au8AFBMp03jE2/T9IiScUEzUf3WtClcyNBjfYvJOURtPMWxLxuHzBHMd1L4/wc+GdJcyWVAv8O3G1D7JEQxnIP8GVJZQpOMH6c4KfqkJlZB0GzyY3hrDKCL6M6IFfSjQS/CBLxVPjaj4Unr/4SWBqz/E7gbyWdJKmA4D1YaWbbhhN7Iob5fn0PuKEnOSg4EXxZ+Pw0ScvCY6CZ4PzGSI+5/jwDNCg4uVuk4GTscWFFiHC/bpBUIamaIKn154fAFyUtUOAESZP7ifsHwIfD/ZSkkvC4L2Pwz3goyoCDZtYm6XTg8kHK3w68W9LbwveiUNJbFdMZIMZfEjTrLQROCh/HhvH/zTBifZJgvz8hKU/SuQTnte4Jlz8P/FX4OR1NcA4vUfuA6vCYGrFMTPq/ltRI8K3+WeAb9N9dcwHwEMEJlaeA/2ev9Uv+CvC58Gfgvwxh+7cTtM3uJTi58zEIehMBHyH459lF8A8f25vnf8O/ByQ928d6fxSu+3GCE0JtDPxPOpB/CLe/heAX0J3h+ofrR8AsSRcBDxC0aW8k+PnaxuBNYkDvF8hfErTjHiLoefXLmOUPA58nqN3tIah5DvaPngxDer/M7D7gq8BdkhoITpBeGC6eQJAUDxG8PweAr4fLbgUWhcfc/4006PAL6yKChLWV4FfLDwma2wC+EMawlaB3y+0DrO4bBAnqQYIK0q0EJ0chOE9zWxj3e8xsNfBBgmasQwRNqNeEMQ34GQ/R3wFfCf/fP8NrCbRPYeXg3QTHUB1BB49P0Heeuxq41cxqzWxvzyPcp/dpiNdGhL+KLwIuIfgcvgVcaWYbwyJfJ6ix7yc4toZSCfsDsImguXDEF1Tq9b+OnHPOjWeZWNN3zjk3TJ70nXMui3jSd865LOJJ3znnskjaDbhWWVlpc+bMSXUYzjmXUdasWVNvZlWDlUu7pD9nzhxWr16d6jCccy6jSBrsymfAm3eccy6reNJ3zrks4knfOeeyiCd955zLIp70nXMui3jSd865LOJJ3znnsognfeecyyKe9J1zLouk3RW5qXDnyh1vmHflsuHe4c0559KX1/Sdcy6LeNJ3zrks4knfOeeyiCd955zLIp70nXMui3jSd865LOJJ3znnsognfeecyyIJJX1JyyVtkLRZ0vV9LD9b0rOSopIu7WP5BEm7JH0nGUE755wbnkGTvqQc4GbgQmARcIWkRXHFdgDXAHf2s5ovAo8NP0znnHPJkEhNfymw2cy2mFkHcBdwSWwBM9tmZi8C3fEvlnQqMBV4MAnxOuecG4FEkv5MYGfMdG04b1CSIsB/AZ8cemjOOeeSLZGkrz7mWYLr/whwv5ntHKiQpOskrZa0uq6uLsFVO+ecG6pERtmsBWpipquB3Qmu/03AWZI+ApQC+ZKazOx1J4PN7BbgFoAlS5Yk+oXinHNuiBJJ+quABZLmAruAy4ErE1m5mV3V81zSNcCS+ITvnHNu7AzavGNmUeCjwAPAeuAeM1sn6SZJFwNIOk1SLXAZ8H1J60YzaOecc8OT0E1UzOx+4P64eTfGPF9F0Owz0Dp+AvxkyBE655xLGr8i1znnsognfeecyyKe9J1zLot40nfOuSyS0IncbHTnyh19zr9y2awxjsQ555LHa/rOOZdFPOk751wW8aTvnHNZxJO+c85lEU/6zjmXRTzpD2JrfTO/en4X7Z1dqQ7FOedGzLtsDiDa3c0vnq3lYHMHtYdaufqMOakOyTnnRsRr+gN4ZutBDjZ3cNaCSvY3tvH9x15lX0NbqsNyzrlh86Tfj7bOLh55ZT/zqkpYvnga1545l8MtnXzvsVdTHZpzzg2bJ/1+PL6pjpaOLi5cPB1JzJ5cwuKZE/jFmlpaO7x93zmXmTzp98HMWLnlIItnTGBmRVHv/GVzJ9PQFuXXLyR6t0jnnEsvnvT70NQepbWzizmTS143f87kYo6eWsrPVm5PUWTOOTcynvT7UN/UAUBVWcHr5kviqmWzeaH2CGtrj6QiNOecGxFP+n2ob2wHoLK04A3L3n3KTIrycrjjaa/tO+cyT0JJX9JySRskbZZ0fR/Lz5b0rKSopEtj5p8k6SlJ6yS9KOm9yQx+tNQ1tZMbEeXFeW9YNqEwj+XHTePBl/fS1W0piM4554Zv0KQvKQe4GbgQWARcIWlRXLEdwDXAnXHzW4C/MbPFwHLgvyWVjzTo0Vbf1E5laQERqc/l5xxTxaGWTtbu8iYe51xmSaSmvxTYbGZbzKwDuAu4JLaAmW0zsxeB7rj5G81sU/h8N7AfqEpK5KOorrGdytL8fpeftaAKCR7bUDeGUTnn3MglMgzDTGBnzHQtsGyoG5K0FMgH3nB1k6TrgOsAZs1K7Z2pot3dHGrp4PjqiX0u77mj1szyIn7xbC1VZQV+Ny3nXMZIpKbfVxvHkBqzJU0Hbgf+1sy645eb2S1mtsTMllRVpfaHwMGmDroNqvo4iRvr6Kll7DzYQktHdIwic865kUsk6dcCNTHT1UDCVydJmgD8FvicmT09tPDGXn1T/z13Yi2YUooBm/c3jUFUzjmXHIkk/VXAAklzJeUDlwMrEll5WP4+4Kdm9r/DD3Ps1PXTRz9edUUxhXkRNu3zpO+cyxyDJn0ziwIfBR4A1gP3mNk6STdJuhhA0mmSaoHLgO9LWhe+/D3A2cA1kp4PHyeNyp4kSX1jO2UFuRTm5QxYLici5k8pY9P+Rsy866ZzLjMkNJ6+md0P3B8378aY56sImn3iX3cHcMcIYxxTdU3tVA5Sy+9x9JRSXtp1hI37mjhmWtkoR+accyPnV+TGCbprJpb051QGY/Os2X5oNENyzrmk8aQfozkcaK1qgD76sSaX5FOcn8OzOzzpO+cygyf9GL09dxJs3pHErEnFnvSdcxnDk36Mw62dAFQUJ1bTB5g1qZgtdc0cbukYrbCccy5pPOnHaG4PLrQqKUj8fvE1k4oBeG7H4VGJyTnnksmTfoyWji4EFOcP3F0zVnVFERHhTTzOuYzgST9Gc3uUovycfkfX7EtBbg4Lp03wpO+cywie9GM0d3RRnJ94006PU2aX8/yOwz6+vnMu7XnSj9HcHqWkIPGmnR6nzKqguaOLjfsaRyEq55xLHk/6MVo6opQMo6Z/6uwKwNv1nXPpz5N+jOb2rmHV9GdNKmZySb734HHOpT1P+qFus2HX9CVxfPVE1tb67ROdc+nNk36ovbObboPiIfTRj3VCdTmb9jf6TVWcc2nNk36o98KsIfTRj3XCzIl0G7y8uyGZYTnnXFJ50g81dwz9atxYPffUfcGbeJxzacyTfqi5vQtgWG36AFMnFDJ1QgFra/1krnMufQ0vw41DPW3xxcPovXPnyh0ATCop4InNB3qnr1w2K3kBOudcEnhNP/Ram/7wvwdnlhdR39ROW2dXssJyzrmk8qQfau7oIi9H5OcO/y2prigCYNfh1mSF5ZxzSZVQhpO0XNIGSZslXd/H8rMlPSspKunSuGVXS9oUPq5OVuDJ1tw+vD76sWaWh0n/kCd951x6GjTpS8oBbgYuBBYBV0haFFdsB3ANcGfcaycB/wosA5YC/yqpYuRhJ19LR9ewe+70KCnIpaI4z2v6zrm0lUhNfymw2cy2mFkHcBdwSWwBM9tmZi8C3XGvvQD4g5kdNLNDwB+A5UmIO+maO6JDGke/PzPLi6g91JKEiJxzLvkSSfozgZ0x07XhvEQk9FpJ10laLWl1XV1dgqtOrmCEzZF3ZqquKOZQSydN7X5lrnMu/SSS9Pu6o0iiA8cn9Fozu8XMlpjZkqqqqgRXnVzNHV3Dvho3Vs/tE2sPem3fOZd+Ekn6tUBNzHQ1sDvB9Y/ktWOms6ubjmh3Umr6M8uD2yfu9CYe51waSiTprwIWSJorKR+4HFiR4PofAN4uqSI8gfv2cF5aaekI+tUP565Z8fJzI0ydUMjOg34y1zmXfgZN+mYWBT5KkKzXA/eY2TpJN0m6GEDSaZJqgcuA70taF772IPBFgi+OVcBN4by00nth1jCuxu1LzaRidh5qodtvn+icSzMJVW3N7H7g/rh5N8Y8X0XQdNPXa38E/GgEMY66nsHWklHTB6ipKOaZrQd5ta6JBVPLkrJO55xLBr8il5jB1pJW0w8u0npupw++5pxLL570eW2wtZFekdujsrSAwryI3z7ROZd2POkTtOkLKEpCl02AiERNRTHPe03fOZdmPOkT9NEvzs8hor4uKxiemknFbNjb0HuS2Dnn0oEnfYKa/nDvjdufmooiug1e9DtpOefSiCd9oLWzi+K85DTt9Oi5MnfN9rTroeqcy2Ke9IG2zi4Kk5z0i/NzWTitjJVbPek759KHJ32grbObwrzkvxVL505izfZDdHbFDz7qnHOp4Umf0anpAyybO5mWji7W7W5I+rqdc244sj7pmxltnV0UjULSP21ucL+YZ7YeSPq6nXNuOLI+6bd2dtFtjEpNf0pZIfMqS1i5xdv1nXPpIeuTfkNr0I9+NJL+nSt3MLk0nz+/Ws8dT2/nzpU7kr4N55wbCk/6bZ0Ao3IiF2DO5BLaOrvZ19A2Kut3zrmhyPqk39ib9JNf0weYW1kCwNb65lFZv3PODUXWJ/2e5p3ROJELUF6cT0Vxnid951xa8KQ/yjV9gLmVpWypa6bb/KYqzrnU8qTf1nMid/TeivlTSmnt7GLPYW/Xd86llif91tGv6R9VFbTrb97fOGrbcM65RGR90m9si5ITEXk5o/dWlBXmMW1CIZvrmkZtG845l4iEMp2k5ZI2SNos6fo+lhdIujtcvlLSnHB+nqTbJK2VtF7SDckNf+Qa2jpHtZbfY/6UUrYfaKGts2vUt+Wcc/0ZNOlLygFuBi4EFgFXSFoUV+z9wCEzmw98E/hqOP8yoMDMjgdOBT7U84WQLhpaOykaxfb8HkdVlRLtNlZt86tznXOpk0i2WwpsNrMtZtYB3AVcElfmEuC28Pm9wHmSBBhQIikXKAI6gLQafayxLTomNf25lSXkSDyxuX7Ut+Wcc/1JJOnPBHbGTNeG8/osY2ZR4AgwmeALoBnYA+wAvm5mb6jqSrpO0mpJq+vq6oa8EyMxVs07+bkRZk0u5olNnvSdc6mTSNLv68ax8R3O+yuzFOgCZgBzgU9ImveGgma3mNkSM1tSVVWVQEjJ09A6NkkfgiaedbsbONDUPibbc865eIkk/VqgJma6GtjdX5mwKWcicBC4Evi9mXWa2X7gz8CSkQadTI1tUQpzx6YT09FTSwF4bOPY/ppxzrkeiWS7VcACSXMl5QOXAyviyqwArg6fXwo8YmZG0KRzrgIlwOnAK8kJPTka2jpHbQiGeDPKi6gqK+Dh9fvHZHvOORdv0KQfttF/FHgAWA/cY2brJN0k6eKw2K3AZEmbgY8DPd06bwZKgZcIvjx+bGYvJnkfhq0j2k1bZzcFY5T0IxLnLZzC4xvr6Ij6LRSdc2MvN5FCZnY/cH/cvBtjnrcRdM+Mf11TX/PTRc8Im2PRZbPHecdO5a5VO1m17SBnzq8cs+065xxk+RW5r427MzY1fYAz508mPzfCQ+v3jdk2nXOuR1Yn/dEeS78vxfm5nHnUZB5evx/zUTedc2Msq5P+aN4qcSDnHTuVHQdbeNXH4nHOjbHsTvq9bfpjm/TPXTgFgD+87L14nHNjK6uTfuMo3x+3PzPKizixeiL3r90zptt1zrmsTvqpat4BuOjEGazddcRvo+icG1NZnfQb2zqRgnFxxto7T5iBBCuej7+42TnnRk9WJ/2GtihlBblE1NfQQaNr2sRCls6ZxIoXdnkvHufcmMnupN/ayYSivJRt/6ITZ/BqXTMv70mr0aadc+NYdif9tihlhalL+u84fjq5EbHiBW/icc6NjYSGYRivGto6mVA4tm/BnSt3vG56XlUJdz+zk+uXL0QpaGZyzmWX7K7pp7h5B+DE6nIOt3by7I5DKY3DOZcdsjrpN7ZFKRvjmn68Y6dPCJp4vBePc24MZHXSD5p3UlvTL8zL4ZhpZfx27R6iXT7csnNudGVt0u/uNprao2Pept+XE6vLqW/q4KktB1IdinNunMvapN/UEcWMlLfpAxwzrYzSglx+7b14nHOjLPXV3BRpaA3G3ZlQmEe0O7UXR+XlRFgwpZQVL+zmuBkTyc157bv4ymWzUhiZc268ydqafmN4A5VUn8jtcWJNOW2d3Wzc58MtO+dGT0JJX9JySRskbZZ0fR/LCyTdHS5fKWlOzLITJD0laZ2ktZIKkxf+8PXW9NOgeQfgqKpSivNzeKH2cKpDcc6NY4MmfUk5BDc4vxBYBFwhaVFcsfcDh8xsPvBN4Kvha3OBO4APm9li4BygM2nRj0DPrRJT3XunR05EHDdzIq/sbaA92pXqcJxz41QiNf2lwGYz22JmHcBdwCVxZS4Bbguf3wucp+Dy0rcDL5rZCwBmdsDM0iKj9Yylny7NOxD04unsMtbvaUx1KM65cSqRpD8T2BkzXRvO67OMmUWBI8Bk4GjAJD0g6VlJnxp5yMmRbs07ALMnFzOxKI8XvYnHOTdKEkn6fQ0IE9/dpb8yucCbgavCv++WdN4bNiBdJ2m1pNV1dXUJhDRyDWl2IhcgInH8zIls2tdES0c01eE458ahRJJ+LVATM10NxHco7y0TtuNPBA6G8x8zs3ozawHuB06J34CZ3WJmS8xsSVVV1dD3Yhga2zopysshLye9OjCdUD2RLjPW7fbhlp1zyZdIxlsFLJA0V1I+cDmwIq7MCuDq8PmlwCMW3BnkAeAEScXhl8FbgJeTE/rINLRGmVCUPrX8HjPLi5hcks/a2iOpDsU5Nw4NmvTDNvqPEiTw9cA9ZrZO0k2SLg6L3QpMlrQZ+DhwffjaQ8A3CL44ngeeNbPfJn83hq6xvTOlY+n3RxKLZ0xgS30TbZ1pcc7bOTeOJFTVNbP7CZpmYufdGPO8Dbisn9feQdBtM600tKbHuDt9OWbaBB7fVM/Gfd6LxzmXXOnVoD2GGtpSP5Z+f2ZNKqYoL4dX9nrSd84lV9Ym/cYU3ypxIDkRccy0MjbsbfThlp1zSZW1Sb+hdexvlTgUC6eV0drZxbM7vM++cy55sjLpmxkNbel5IrfH0VPLiAgeXr8v1aE458aRrEz67dFuOrssLbts9ijMy2FuZQkPedJ3ziVRVib92LH009nCaRN4ta6ZbfXNqQ7FOTdOZGfST8MhGPpy7PQJAF7bd84lTZYm/fQbbK0vk0ryWTCllEde2Z/qUJxz40R2Jv0Mad4BOO/YqTyz9WDvF5Vzzo1EVib9xt4bqKR38w7A+cdOIdptPLZhbEYfdc6Nb1mZ9DOleQfg5FkVTCrJ966bzrmkyM6k35oZJ3IhuDr3nGOq+OOGOr861zk3YlmZ9BvbOsmNiKK8nFSHkpDzj53KkdZO1mw/lOpQnHMZLiuTfs9ga8FtfNPfWQsqycsRD77sTTzOuZFJ//aNURAMtpYZu37nyh0AHFVVyr1raplbWcL7Tp+d4qicc5kqO2v6rZ0Z0V0z1gnV5Rxp7WTHgZZUh+Kcy2DZmfTb0vNWiQM5dloZuRHx4i4fddM5N3xZmfQb2zopK8ismn5BXg4Lp5WxdleD9+Jxzg1bVib9dL0p+mBOqC6nuT3Kyq0HUx2Kcy5DJZT0JS2XtEHSZknX97G8QNLd4fKVkubELZ8lqUnSvyQn7JFJ97H0+3PMtDLycyP8+oXdqQ7FOZehBk36knKAm4ELgUXAFZIWxRV7P3DIzOYD3wS+Grf8m8DvRh7uyEW7umnp6Mq4E7kAeTkRFk2fwP1r99DW2ZXqcJxzGSiRmv5SYLOZbTGzDuAu4JK4MpcAt4XP7wXOU9gJXtK7gC3AuuSEPDK94+5kYPMOwKmzK2hPbrOGAAAXg0lEQVRoi3L/2j2pDsU5l4ESSfozgZ0x07XhvD7LmFkUOAJMllQCfBr4wkAbkHSdpNWSVtfVje7AYo29Y+lnXk0fYF5lCfMqS/hZ2H/fOeeGIpGk39dlq5ZgmS8A3zSzpoE2YGa3mNkSM1tSVVWVQEjD1zvYWoZcnBVPElcsncWa7YfYsLcx1eE45zJMIkm/FqiJma4G4s8k9paRlAtMBA4Cy4D/lLQN+CfgM5I+OsKYR6R3LP0MGGGzP391ajX5ORHuXLk91aE45zJMIkl/FbBA0lxJ+cDlwIq4MiuAq8PnlwKPWOAsM5tjZnOA/wb+3cy+k6TYhyVTbpU4kEkl+Vx4/DR++dwuWjqiqQ7HOZdBBk36YRv9R4EHgPXAPWa2TtJNki4Oi91K0Ia/Gfg48IZuneniteadzK3pA1y1bDaNbVF+8eyuVIfinMsgCVV3zex+4P64eTfGPG8DLhtkHf82jPiSLpNulTiQ0+ZUcFJNOd979FUuP62GvJysvM7OOTdEWZcpGtqiSFCawc07EJzQ/cfzFrDrcCv3eW3fOZegrEv6B5raqSjOJyeSGWPpD+ScY6o4fuZEbn50s4/H45xLSNYl/fqmdipL81MdxojcuXIHd67cwc+f2cmJ1RPZfqCFG365NtVhOecyQNYl/QNNHUwuKUh1GEmzcPoEpk0o5KH1+2jt8KEZnHMDy76k39zB5Ayv6ceKSLzzxOkcaunkO3/clOpwnHNpLuuSfn1jO5Wl46emDzCvspSTa8q55fEtbN7vV+k65/qXVUm/rbOLxvZoxrfp9+XC46dTnJ/LZ+97ie7u+FEynHMukFVJ/2BzBwCTx1lNH6C0IJcbLlzIyq0H+fYjm1MdjnMuTWVV0q9vagcYd807Pd57Wg1/ecpMvvnQRn7/0t5Uh+OcS0NZlfQPNPXU9Mdf8w4QduEsp7qiiI/9/Dn+68ENqQ7JOZdmsirp99T0q8ZpTR+Cu2u9b9lsCvMi/PBPW3l2x6FUh+ScSyNZlvTHd02/x4SiPK47+yiK83O46gcreWzj6N6YxjmXObIq6R9oaqcoL4fi/MwedycRk0ryue7secypLOHan6zi9qe2Yea9epzLduM/+8U40NxBZdn4ruXHKivM47JTq7ln9U4+/6t1rHhhDxedOJ3cSIQrl81KdXjOuRTIqpp+fVP7uBqCIRGFeTm87/TZvOXoKlZtO8hPn9pOW6cP1+BctsqypN8xLi/MGkxE4oLF0/irU6rZUtfED/60hX0NbakOyzmXAlmV9A80jb8hGIbi1NkV/M2b5nCguYNLv/ckOw+2pDok59wYy5qk391t426wteE4emoZH3jzXBpao7z3+0+xrb451SE558ZQ1iT9I62ddHVb1rXp96W6opg7P7iMtmg37/n+U2ze35TqkJxzYyShpC9puaQNkjZLesNNzyUVSLo7XL5S0pxw/tskrZG0Nvx7bnLDT9yB5nAIhjJP+gCLZ0zk5x88nW6Dy295ilf2NqQ6JOfcGBg06UvKAW4GLgQWAVdIWhRX7P3AITObD3wT+Go4vx64yMyOB64Gbk9W4ENV1xhcmFVZkt3NO7GOmVbG3R86nZyIuPyWp3lp15FUh+ScG2WJ1PSXApvNbIuZdQB3AZfElbkEuC18fi9wniSZ2XNmtjucvw4olJSSqrbX9F+v55aLK7cc5H3LZoPBlT94mud82AbnxrVEkv5MYGfMdG04r88yZhYFjgCT48r8FfCcmbXHb0DSdZJWS1pdVzc6QwbUNwabnew1/TeYXFrAB8+eR3lxPn996zOs2nYw1SE550ZJIklffcyLv55/wDKSFhM0+Xyorw2Y2S1mtsTMllRVVSUQ0tAdaO4gIigv9qTfl4rifK5YOovCvAhX/XAl//n7V3p/DTjnxo9Ekn4tUBMzXQ3s7q+MpFxgInAwnK4G7gP+xsxeHWnAw1Xf1MGkkgJyIn19PzmAiUV5fODN8yjOz+G2J7f1jkrqnBs/Ekn6q4AFkuZKygcuB1bElVlBcKIW4FLgETMzSeXAb4EbzOzPyQp6OOqb2rPyatyhmlCUx7VnzMWAH/95K41tnakOyTmXRIMm/bCN/qPAA8B64B4zWyfpJkkXh8VuBSZL2gx8HOjp1vlRYD7weUnPh48pSd+LBBxoas/6C7MSVVlWwDVnzKGpPcodT2+nPepj9Tg3XiTUT9/M7jezo83sKDP7cjjvRjNbET5vM7PLzGy+mS01sy3h/C+ZWYmZnRTz2D96u9O/YNwd77mTqOqKYi49tYadh1r5zC9f8mGZnRsnsuKK3I5oN7sPtzKzvCjVoWSU42dO5NyFU/jFs7Xc+sTWVIfjnEuCrBhPf9uBZqLdxtFTy1IdSsY5d+EU8nMi/Pv965k/pZRzjklJ65xzLkmyIulv3NcIwIKppSmOJPNEJJbNm8TzOw/z4TvW8HdvmU9VeIGb34jFucyTFc07m/Y1EREcVeVJfzgKcnP46zfNJkfi9qe30drhJ3ady1TZkfT3NzJrUjGFeTmpDiVjVRTnc+Wy2Rxs7uCuVTvo6vYTu85louxI+vuaWODt+SM2t7KES06cyab9TTywbm+qw3HODcO4T/od0W621jdztLfnJ8VpcyfxpnmTeWJzPd999FXvyulchhn3J3J7eu4smOI1/WR5x/HTaWyP8tXfv8JLu4/wn391AiUFwaHU31g9ftLXjQfj4fge90l/077grlDecyd5ciLiitNqOHL8NL7+wAbWbDvEhcdP47yFU9nf2EZBbg4lBTnkRsb9D0nnMs64T/ob9zV6z51RIImPnDOfk6rLufWJrfxs5Q5+/OdtvcsjCk7+TptYyMk15XR2dZOX418CzqXauE/6m/c3ec+dUXTG/ErOmF9Jc3uU1dsPcf+Le2iPdnOktYO6pg62H2hm3e4GHnx5H1efMYerz5hDacG4P+ycS1vj/r9v475G77kzBkoKcnnL0VXsOtT6uvld3cbGfY1sP9jC1x7YwA/+tIVrzpjDlctmMaWsMEXRjo3x0P7rxp9xnfR7eu68ffHUVIeStXIi4tjpE/jiu47j+Z2H+dbDm/jvhzZx8x83c8HiaSw/bhpnHlVJRR93NGvr7GLz/iZe2dvIhr0NbK1vprEtSltnF+XF+SyYUsqiGRM4d+GUjLg5Tle30dQe5YWdh2lqj9Ie7SI/J4eF08t8MEA3ZsZ10t/uPXdG1VDvqnVSTTk/uuY0ttQ1cfvT2/nls7v4zYt7kKC6ooipZYWUFebyal0zTe1RDjV39N5+LTciKksLKMzLIT9X1O1r5M+b64l2G7kRceb8Sv7i+Om8ffHUtPkCaO3oYt3uI2ytb2b3kVbqGtvp75q2qRMKuHLpbD5w1tzenlAuvby06wi/W7uHLfXN1DW1c9yMCZw5v5LpEzNrIEelWz/rJUuW2OrVq5Oyrluf2MoXf/MyD338bOYPkPj9loCp0dVt7Drcyqb9jdQ3ttPQFqW9s4vi/FyKC3KYXFLAtImFTJ1QwOQ+7nrWbcYJ1RP57do93L92DzsPtqb8C6C723hsYx0/W7mDP76yny4zygpymVFexLSJhZQX5zGhMI/CvBxyI6Kjq5u9R9p4tS74RVNSkMsFi6Zy6uwKJHlTUBo40NTO1x7YwN2rdxKRmDWpmPKiPF7afYTOLuO0OZO467rTU35XPklrzGzJoOXGa9Lv6jbe+vVHmTqhgP/98BkDlvWkn/nMgi+Ql3YdYe2uIxxq6URAZWkB08sLmT6xiCuXzWLR9Am9A8Yl0/YDzax4fjf3rNnJzoOtVJYWsHBaGSdUT2RmeRHS4Alh58EWfvfSHrYdaGHxjAn85cnVvP+suUmP1SUm2tXNnc/s4OsPbKClo4tr3zyXaRMKezuFtHZ08ccN+3licz0XnziD/3rPiSntoZZo0h+3vyMf3bCfHQdb+PTyhakOxY0BSVRXFFNdUcwFi6ex63ArG/Y2svtIGzsOtvBi7ZHeoSMqS/NZOG0CC6eVsXB68Hf+lNIh9fA61NzB87WHefrVAzz56gHW7joCwLK5k/jUBQu5YPE07l1TO6R9qJlUzAfOmscTm+p58OW9fPvwJk6aVc6psyuGtB43MtGubh5av5//eXgT6/c0cOb8yXzh4sXMn1L2ugpiUX4O7zh+OiX5Oax4YTft0S6+fcUp5Oemd9fkcZv0f/LkNqZPLPSTuFko9gugR2tHF3saWtlzuI19DW1srW/m6S0HiIaN7DkRMa+ypPdLYPrEQkoKcsnPidDQ1smR1k52HGhha30zr+xtZNfhoJdSXo44uaaC6y9cyEUnzhjxjXoiEmcfXcXcyhLuWrWD93z/KT7+tqP5u7ccRSTFzQfj3cZ9jfzq+V3cu6aWfQ3tzCwv4rtXncLy46YN+EvtLcdM4fSjJvOFX7/Mh25fzXffd2padxEfl0l/075G/rSpnk9ecIxfEOSAoFY2r7KUeZWvXaTXbcaBpg7mTynllb0NrN/TyHM7DvHrF3b3uY7CvAjlRflUlRVw/MyJzKwooqaiuLdm99iGuqTFWzOpmH84dwHP7jjE1x7YwK9f2M3fv3U+7zh+esrbjseT7Qea+dJv1/Ni7WH2NbQjgqv3v/Su43nrMVXkJpg//vbMuRTm5fCZ+9Zy7U9W8f2/PpWywrzRDX6YEmrTl7Qc+B8gB/ihmf1H3PIC4KfAqcAB4L1mti1cdgPwfqAL+JiZPTDQtkbapn+ouYOP3fUcK7ce5OkbzmNSH10B43mbvovV1tlFc3uU9mg3Xd1GQV6EorwcSgpyiSTQNp9MVyytYcULu/nWw5t4ta6Z6RMLOXN+JUvnTmJuZUlvj6dIREQU/GKJqOcRTCdyPmEgZkZnl9Ha2UV7Zxdtnd1IUJAbIb/nkRN5XYI0M6LdRnu0m47YR1fw+q5uY0JRHpOK83vjH21mxr6Gdjbtb+TPmw/w2MY61u9pAGD25GJOqC7nuBkThpWse0643/dcLZ+45wWmlBXyrxctGvRXQjIl7USupBxgI/A2oBZYBVxhZi/HlPkIcIKZfVjS5cC7zey9khYBPweWAjOAh4Cjzazfu3CMJOk/uG4vn7nvJQ63dPD5dy7i6jPmJPQ6T/ou3XWbsW53Ay/sPMyeI60caukc0utzIqI4P4eyglxKC3MpLcjt/RKLCDq7jLbOLlo7u2gLE3tb+Lylo4tEuntEBPm5Ecygo6ubRPuI5ERERXEeFcX5VJTkU1GcR24kQrdZ+AgSdrcRN210d/O6cn0tb4920drRxeHWTlrCGwDlRsSSORWcu3AK0S4bcS+v2F5Wz+04xGfve4mX9zRwUk05b1s0lTPnV1JTUURFcf6ofcElM+m/Cfg3M7sgnL4BwMy+ElPmgbDMU5Jygb1AFXB9bNnYcv1tb7hJ/9W6Js7/xmMsnDaBr192AotnTEz4tZ70XSbpNqO+qZ0jLZ00tHXSHu3uTXQWJr6ecmZgBF1J27u6ae/spj3a1fvXALMg8ebmqLfGnp+j8G+E3ByRlxMJHyIvEsEIavLRLqOr24h2dxPtNrq6DBQk1dycCLkRBeuORMJ5Ijf8NdIafqE0d0RpaQ/+Nrd30dIRxQyk8IGQgvMdwXRw3ib42//znl9lPftRlBdhcmkBlaUF1FQUUZDEdvf4rrXRrm7ueHo79z5by0u7Gnrn50ZEUX5O+L4E72dEotuMzq5uFs2YyE+vXTqsGJLZe2cmsDNmuhZY1l8ZM4tKOgJMDuc/HffamX0Eex1wXTjZJOkAUJ9AbG+wDfj9Pw3nlWOukmHuY4bJhv3Mhn2E7NjPYe3jVUna+Brg9vcP++WzEymUSNLv67dI/M+D/sok8lrM7Bbglt6VSasT+cbKZNmwj5Ad+5kN+wjZsZ/ZsI+JnJquBWpipquB+O4NvWXC5p2JwMEEX+ucc26MJJL0VwELJM2VlA9cDqyIK7MCuDp8finwiAUnC1YAl0sqkDQXWAA8k5zQnXPODdWgzTthG/1HgQcIumz+yMzWSboJWG1mK4BbgdslbSao4V8evnadpHuAl4Eo8PcD9dyJccvgRTJeNuwjZMd+ZsM+Qnbs57jfx7Qbe8c559zo8ctVnXMui3jSd865LJJWSV/SckkbJG2WdH2q40kWST+StF/SSzHzJkn6g6RN4d+MHkpRUo2kP0paL2mdpH8M54+3/SyU9IykF8L9/EI4f66kleF+3h12eshoknIkPSfpN+H0eNzHbZLWSnpe0upw3rg6ZuOlTdIPh3u4GbgQWARcEQ7jMB78BFgeN+964GEzWwA8HE5nsijwCTM7Fjgd+Pvw8xtv+9kOnGtmJwInAcslnQ58FfhmuJ+HCMabynT/CKyPmR6P+wjwVjM7KaZ//ng7Zl8nbZI+wfg8m81si5l1AHcBl6Q4pqQws8cJejXFugS4LXx+G/CuMQ0qycxsj5k9Gz5vJEgWMxl/+2lm1hRO5oUPA84F7g3nZ/x+SqoG/gL4YTgtxtk+DmBcHbPx0inp9zXcwxuGbBhHpprZHggSJjAlxfEkjaQ5wMnASsbhfobNHs8D+4E/AK8Ch80sGhYZD8fufwOfArrD6cmMv32E4Av7QUlrwuFgYBwes7HSaTz9hIZscOlNUinwC+CfzKxhrIaVHUvhtSYnSSoH7gOO7avY2EaVPJLeCew3szWSzumZ3UfRjN3HGGea2W5JU4A/SHol1QGNtnSq6WfbkA37JE0HCP/uT3E8IyYpjyDh/8zMfhnOHnf72cPMDgOPEpzDKA+HIIHMP3bPBC6WtI2gmfVcgpr/eNpHAMxsd/h3P8EX+FLG8TEL6ZX0ExnuYTyJHbriauBXKYxlxMI231uB9Wb2jZhF420/q8IaPpKKgPMJzl/8kWAIEsjw/TSzG8ys2szmEPwfPmJmVzGO9hFAUomksp7nwNuBlxhnx2y8tLoiV9I7CGoUPcM9fDnFISWFpJ8D5xAM27oP+Ffg/4B7gFnADuAyM4s/2ZsxJL0Z+BOwltfagT9D0K4/nvbzBIKTezkElaZ7zOwmSfMIasWTgOeA95lZe+oiTY6weedfzOyd420fw/25L5zMBe40sy9Lmsw4OmbjpVXSd845N7rSqXnHOefcKPOk75xzWcSTvnPOZRFP+s45l0U86TvnXBbxpO+cc1nEk77LOJI+Fg7h/LNUxzKaJL1rHI0069KEJ32XiT4CvCO8SnRAMcMGZKJ3EQwz7lzSeNJ3GUXS94B5wApJn5b0ZHijjyclHROWuUbS/0r6NfBgOO+TklZJerHnxicDbOP/wlEX18WMvIikJklfDZc9JGmppEclbZF0cVimUNKPwxtzPCfprTExfSdmXb/pGcwsXO+XwxuzPC1pqqQzgIuBr4U3+Dgqme+jy16e9F1GMbMPEwz09Vbgu8DZZnYycCPw7zFF3wRcbWbnSno7sIBgMK2TgFMlnT3AZq41s1OBJcDHwsvyAUqAR8NljcCXgLcB7wZuCsv8fRjn8cAVwG2SCgfZrRLg6fDGLI8DHzSzJwnGgPlkeIOPVwdZh3MJyeSfvs5NJEiqCwiG+c2LWfaHmPFS3h4+ngunSwm+BB7vZ70fk/Tu8HlNWPYA0AH8Ppy/Fmg3s05Ja4E54fw3A98GMLNXJG0Hjh5kPzqA34TP1xB8kTg3Kjzpu0z2ReCPZvbu8MYtj8Ysa455LuArZvb9wVYYNrmcD7zJzFokPQr01NQ77bXBqroJbp2ImXXHnDvo7wYCUV7/yzq29h+73i78/9KNIm/ecZlsIrArfH7NAOUeAK4Nb/CCpJnhTTP6W+ehMOEvJBgrfygeB64Kt3M0wUiNG4BtBDdeiUiqIWhqGkwjUDbE7Ts3IE/6LpP9J/AVSX8mGOq4T2b2IHAn8FTYFHMv/SfT3wO5kl4k+CXx9BBj+n9ATridu4FrwuGH/wxsJWgW+jrwbALrugv4ZHhC2E/kuqTwoZWdcy6LeE3fOeeyiJ8wclkp7Ib5cB+LzjOzA2Mdj3NjxZt3nHMui3jzjnPOZRFP+s45l0U86TvnXBbxpO+cc1nk/wOYl5pGaEeibQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "preds = xgbr.predict(test[['haversine', 'abs_lat_diff', 'abs_lon_diff', 'passenger_count']])\n",
    "\n",
    "sub = pd.DataFrame({'key': test_id, 'fare_amount': preds})\n",
    "sub.to_csv('sub_rf_simple.csv', index = False)\n",
    "\n",
    "sns.distplot(sub['fare_amount'])\n",
    "plt.title('Distribution of Random Forest Predicted Fare Amount');"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
